)]}'
{
  "log": [
    {
      "commit": "8cf9cb386cd9286d67e879f1ee501ec00d72a4e1",
      "tree": "88e86e214b425e444760fe4e0ffeee677e1558a2",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 19 09:28:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 16:07:10 2017 -0700"
      },
      "message": "ART: Include cleanup\n\nLet clang-format reorder the header includes.\n\nDerived with:\n\n* .clang-format:\n BasedOnStyle: Google\n IncludeIsMainRegex: \u0027(_test|-inl)?$\u0027\n\n* Steps:\n find . -name \u0027*.cc\u0027 -o -name \u0027*.h\u0027 | xargs sed -i.bak -e \u0027s/^#include/ #include/\u0027 ; git commit -a -m \u0027ART: Include cleanup\u0027\n git-clang-format -style\u003dfile HEAD^\n manual inspection\n git commit -a --amend\n\nTest: mmma art\nChange-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02\n"
    },
    {
      "commit": "51d80ccca5eb2ea0eef0de836dcc03e0545f63db",
      "tree": "14ff2bf5b9a9ca86d8a8d6f736cf27d8a1d47554",
      "parents": [
        "19df565ffcb30cb7b5217f074771078f0bb6cc1c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 21 21:05:13 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 22 16:04:07 2017 -0700"
      },
      "message": "ART: Refactor abort code\n\nRemove Runtime::Aborter and let Runtime::Abort set the abort message\non target.\n\nThis works around a missing tail-call optimization that leads to a\nsuperfluous frame on the call-stack when aborting.\n\nPartially reverts commit 3fec9ac0d5af1358d216eb2fdc2000ec0205f3f0.\n\nBug: 62810360\nTest: m test-art-host\nTest: Manual inspection of abort dump\nChange-Id: Ie4efc8bbdc8b665b23081b37a11921fe26b182b4\n"
    },
    {
      "commit": "885a7133472fd01321cbe545ace9c2acae543bf1",
      "tree": "f3bc66aaff2f38edc3673c3cfb4aba80f5e08242",
      "parents": [
        "16d59b2b0ff202be99cbe24830e8a5080b774357"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jun 10 14:35:11 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 12 22:45:58 2017 -0700"
      },
      "message": "Add support for profiling boot class path\n\nAdded a runtime option -Xps-profile-boot-class-path that makes the\nprofile saver take samples for the boot dex files. The motivation is\nto use this for improving boot image creation.\n\nAdded test case to test 595.\n\nTest: adb shell setprop dalvik.vm.extra-opts \"\u0027-Xusejit:false -Xint -Xps-profile-boot-class-path -verbose:profiler\u0027\"\nTest: Pull profile and look at output\nTest: test-art-host\nTest: test/run-test --host 595-profile-saving\n\nBug: 37966211\n\n(cherry picked from commit 08fee9c7db427e90dbe75692e6bc0242643cb3c5)\n\nChange-Id: Id95de103ed14841d9c209946ea7f1c4f6b5d23a5\n"
    },
    {
      "commit": "7b135c80fedea16844892527555b144c64651a65",
      "tree": "cb0da182ae9752f64811cb2f994236058f41dc7e",
      "parents": [
        "6ecff4d2127e70738aa2493d6deceb946c204eff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 05 12:54:01 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 06 16:49:08 2017 -0700"
      },
      "message": "Only compile hot methods\n\nInstead of compiling all startup + hot methods, we now only compile\nhot methods. However, the current logic still marks all startup\nmethods that have a counter greater than hot_method_sample_threshold_\nas hot methods. Since hot-startup-method-samples is currently 1,\nthere is no current behavioral change.\n\nThe goal is to increase hot_method_sample_threshold_ in a follow up\nCL.\n\nRenamed startup-method-samples to hot-startup-method-samples to\nbetter reflect the new behavior of the option.\n\nTest: test-art-host\nBug: 36457259\n\nChange-Id: I820bdcd4426769d76131b08a8b41f3b7eebfbc23\n"
    },
    {
      "commit": "d482e73fe26cb9161511a80e3db39e08b9808ab6",
      "tree": "0b8c874f24c211e4e3d87083f8017580aa23ff63",
      "parents": [
        "a14100ccf51cc63a5c472188d1e2d337627e49eb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 24 17:59:09 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 30 16:26:35 2017 -0700"
      },
      "message": "ART: More header cleanup - runtime.h\n\nRemove unnecessary runtime.h includes. Refactor other headers\n(move to forward declarations) to make this possible.\n\nTest: mmma art\nChange-Id: I297f0ad444ba92169edd16d8c7cbe95bb6dbb800\n"
    },
    {
      "commit": "88307edcd5c35bd5f602b4c6b2464c2d4332753e",
      "tree": "cb41c36536ae87483daa24b6fcf4381b9a5df15d",
      "parents": [
        "18457f487316b2ed2dd584f3e1f07e939e18aef5"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Apr 25 22:33:06 2017 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Apr 28 11:04:12 2017 -0700"
      },
      "message": "Fix up code warning and errors\n\nDiscovered by new LLVM rebase.\n\nClean up, no functionality change.\n\nTest: build\nBug: 37752547\nChange-Id: I7df6097706e0772226dcb07611e7d044a6085421\n"
    },
    {
      "commit": "bec07a05dd1aa564895f0d9c58c8277c576dc9bb",
      "tree": "590e3147526123734a3d5a7ec401822bf35b73d1",
      "parents": [
        "e2dfd30e752ed94944cb6f614f1a4cf18d038677"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 11 13:48:37 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 11 13:48:37 2017 -0700"
      },
      "message": "ART: Add -verbose:dex\n\nAdd a dex verbose flag to separate out concerns for dex investigations.\n\nBug: 37158297\nTest: m test-art-host\nChange-Id: Ice5efad919ae0b6838d44e2f3711563a0774ef0e\n"
    },
    {
      "commit": "4b812faa25454bda4d6e79a305938449a54a3e41",
      "tree": "20ff43702e7da31a4990125ff9b5659505b363e0",
      "parents": [
        "8b71f086ade1f48f3780cc81706669abbfe9c184"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 29 10:40:15 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 29 10:40:15 2017 -0700"
      },
      "message": "Change Ti::Agent collection from vector to List\n\nWe want these to be in a list to avoid the need for moving them\naround, which would introduce the need to perform annoying accounting.\n\nTest: ./test.py --host -j40\nBug: 36716572\nBug: 31455788\nChange-Id: Ie16523f4e7d79934fa7844fb9b9a26e125cfa9eb\n"
    },
    {
      "commit": "9545f6db8b2487ecb940f91c29ce814ec6b1ea25",
      "tree": "96975e0fb443225542455d33cee5d481896debdc",
      "parents": [
        "a345d3144c56e510866848fd677b05adc7780189"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 16 19:05:09 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 17 11:38:52 2017 -0700"
      },
      "message": "Accept output profile path from dalvikvm command\n\nTest: run dalvikvm with -Xps-profile-path\nBug: 36032648\n\nChange-Id: I34640afe1cf0e7b192ad082ccde2784faab1ba4c\n"
    },
    {
      "commit": "67e1dc5ae1357de26039151a61ad2599ef21de2f",
      "tree": "b97a67fee4d3461ec28722fee477ab91cf390361",
      "parents": [
        "e92ba687f9ab2a3cd9724f494b6899e8e6e472ec"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Feb 06 16:50:17 2017 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Feb 15 10:47:27 2017 +0000"
      },
      "message": "Remove use of npic image for gtests.\n\nTest: art gtests on host and target\nBug: 33192586\nChange-Id: Ic56e304eb539b4cf353281280a48ce23c74bf218\n"
    },
    {
      "commit": "01fd70b531a8bd8ebb2238f20c3e651f6b065285",
      "tree": "7f4f6a9514638aafbd8fa94791676567f1bb0c3c",
      "parents": [
        "5ea54a33a81ce48156fbb2685e9a61d0748644dc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 25 10:03:08 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 25 11:38:25 2017 -0800"
      },
      "message": "ART: Remove experimental flags for plugins and agents\n\nRemove experimental flags guarding plugins and agents.\n\nPartial revert of commit 7233c7e752c0d26387d143ee74420e9cd1f09390.\nPartial revert of commit 185d134a3b43ab7529053e965917e0fa74bceba4.\n\nBug: 31455788\nTest: m test-art-host\nChange-Id: I11a19f24b88ced8da7a28e2cb7a2f602aab884a8\n"
    },
    {
      "commit": "9320675cb21a53b3dd59d80d440a96e04c84f28d",
      "tree": "4ed1f60e2d0a39a554e1f7b38d0adbf7beb8282b",
      "parents": [
        "8bd59a0fd46db83616785168231e09fb95ed2ead"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jan 17 13:20:55 2017 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jan 17 17:05:12 2017 +0000"
      },
      "message": "MethodHandles: Remove experimental flag.\n\nRuntime::IsMethodHandlesEnabled now always returns true.\nThis change also removes the (now unnecessary) run scripts\nfor method handle tests.\n\nNote that the --experimental\u003dmethod-handles flag is left in\nplace for the test build steps (etc/default-build) because it\u0027s still a\nconvenient way to supply arguments to jack / smali.\n\nTest: make test-art-host\n\nChange-Id: I8475c7b8ac2615ac382a06ce54be39dce3cc7713\n"
    },
    {
      "commit": "46ee31b67d7ee1bd085fbc240502053caa3cf8fa",
      "tree": "83e870f293cd60d533207e389d7b094acd87b31f",
      "parents": [
        "9538f9e2a5d03f1b1bc07ebfbd93b61dcf8ad604"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 14 10:11:49 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 15 09:50:39 2016 -0800"
      },
      "message": "ART: Move to libbase StringPrintf\n\nRemove ART\u0027s StringPrintf implementation. Fix up clients. Add\nmissing includes where necessary.\n\nTest: m test-art-host\nChange-Id: I564038d5868595ac3bb88d641af1000cea940e5a\n"
    },
    {
      "commit": "9186ced255f2e7402646b5b286deebb540640734",
      "tree": "833c25fd3bbb47749265947705b4fc0f0c1ba796",
      "parents": [
        "aa2657d6d9dda2e44c6452e5f5901db78ef9b3cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 12 14:28:21 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 13 11:43:48 2016 -0800"
      },
      "message": "ART: Clean up utils.h\n\nRemove functionality provided by libbase. Move some single-use\nfunctions to their respective users.\n\nTest: m test-art-host\nChange-Id: I75594035fa975200d638cc29bb9f31bc6e6cb29f\n"
    },
    {
      "commit": "1b0adbf7b14973c3f110976de046d75a7d4ed934",
      "tree": "35e0e3effe140748982b0ccf295b123c4952dbe8",
      "parents": [
        "26c8f54be31ccf99540906746b17fc8bba1bab9a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Nov 14 17:35:12 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 16 12:04:19 2016 -0800"
      },
      "message": "Ensure CC GC is used for the read barrier config.\n\nTo prevent the -Xgc option from causing unsupported GC types to run.\n\nBug: 12687968\nTest: test-art-host with CC.\nChange-Id: I10b42190c0888342e9127c52e863ddae82e4d7a1\n"
    },
    {
      "commit": "ca620d7bc03b23a0bcf0ef58df58603ee000dca0",
      "tree": "07cb026075b70a958d14ae84b4e213178a6ba0b4",
      "parents": [
        "b02b8d7df48ea3314cfcb3c08d84ac9556363833"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 08 08:09:33 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 08 15:04:48 2016 -0800"
      },
      "message": "ART: Fix tidy warnings\n\nSwitch to char versions of find variants.\n\nAdd \"explicit\" constructor variants or refactor and\nremove defaults.\n\nUse const references.\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: I970cc2f47d6cf8f0c74104b994b075b2fafb3d45\n"
    },
    {
      "commit": "5c657fe8e3afdce77dc610446f37a43865cff702",
      "tree": "1f9fe466058b7512036b27a5b22f7720eb00729d",
      "parents": [
        "2ab98309c0fc7b3c7451205b2371db5c34b05d49"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 03 15:12:29 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 03 15:13:06 2016 +0000"
      },
      "message": "Pass some arguments by const reference.\n\nTest: Rely on TreeHugger.\nBug: 32619234\nChange-Id: Ia26277893641dcb3562eaeacaec4e089a978d56a\n"
    },
    {
      "commit": "eb84221ffc00357be6d69e2e461c7a45ee96334a",
      "tree": "00e6a0884a62dfb448e4d617699fe511307db74f",
      "parents": [
        "19c5e5f3e92db92e4a51b354743cbb0edd8e0f48"
      ],
      "author": {
        "name": "Leonard Mosescu",
        "email": "mosescu@google.com",
        "time": "Thu Oct 06 17:26:36 2016 -0700"
      },
      "committer": {
        "name": "Leonard Mosescu",
        "email": "mosescu@google.com",
        "time": "Tue Oct 25 19:46:58 2016 +0000"
      },
      "message": "Enable agent attaching during live phase\n\nThis is the ART part, the plumbing from VMDebug_attachAgent() to\nactually loading the agent into the runtime.\n\nTest: m test-art-host\n\nBug: 31682382\n\nChange-Id: I3ccc67aa050c1f78278882128983686ed44ddec2\n"
    },
    {
      "commit": "f57589fd40e5b69dad5aff060ccef756507f381a",
      "tree": "62d38e73660d9818b18c4741c6b3cce3306d63d5",
      "parents": [
        "c25dfeab1a66c942ae658fc7cd367f7c1ac502a1"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Oct 17 10:09:33 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Oct 17 13:50:35 2016 -0700"
      },
      "message": "Remove logging dependency on runtime\n\nMoved the abort backtracing function to runtime, forcing callers to\nsupply the aborter at InitLogging.  This makes runtime properly layer\non top of logging by removing the cyclic dependency.\n\nBug: 22322814\nTest: test-art-host\nChange-Id: I8b2e72174e937bb88fe1bddd6d04b564cfb011a9\n"
    },
    {
      "commit": "a9b296c932947f8c857101f6653a3b7cb755c285",
      "tree": "a6d729ab851709e064cd0468cf09ec61e9002b0b",
      "parents": [
        "18f7de841fee3ca6f0c04e7caa57c3ce76b36231"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Oct 07 17:07:03 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Oct 07 18:11:55 2016 -0700"
      },
      "message": "Avoid ThreadStress timeout with art-read-barrier-table-lookup.\n\nDisable MarkFromReadBarrierWithMeasurements for\nart-read-barrier-table-lookup to avoid slowdown as it takes more read\nbarrier slow paths than art-read-barrier.\n\nIncrease the timeout.\n\nBug: 31679493\nBug: 12687968\nTest: test-art-host with ART_READ_BARRIER_TYPE\u003dTABLELOOKUP\nChange-Id: I1a87864448e28099e522dc7fedce2208189248f2\n"
    },
    {
      "commit": "25352fc06c84cdab8a2ab6d173b0514066ade2b9",
      "tree": "bb8a6be0c9a144ccf33b07b3158409769a32daa2",
      "parents": [
        "51cbe84ca33800c57fef9c96f1155f60bcc70bba"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Aug 03 12:46:58 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 09:48:50 2016 +0100"
      },
      "message": "class_linker: Add support for resolving method types.\n\n- Add a new fixed size dex cache array for resolved method types.\n  The size of this array is set to 1024.\n- Also introduces a new runtime flag that controls this feature.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I147b33398d71ee21f2e91b418d3700d4630801ff\n"
    },
    {
      "commit": "afd3c9ea7f238afebd5073c1143d3c832ab10a71",
      "tree": "ea95e66ac119b6f86f637ebbeba22e956d3a4c4e",
      "parents": [
        "be3a3ee02f148345ba6e1a0361532a3f7e8c0002"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 13:47:21 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 10:10:42 2016 -0700"
      },
      "message": "Convert art runtests to Android.bp\n\nBuild the art runtest libraries with Android.bp.  The host test\nlibraries move from out/host/linux-x86/lib[64] to\nout/host/linux-x86/nativetest[64], and the device test libraires from\n/data/artest/${TARGET_ARCH} to /data/nativetest[64]/art/${TARGET_ARCH},\nwhich requires adding nativetest to the library search path, and fixing\nsome tests to support multiple entries in library search paths.\n\nTest: m -j test-art-host\nTest: m -j test-art-target\nChange-Id: I2118a3292f22f275954ddd7cdd4e12287fe47808\n"
    },
    {
      "commit": "6e95dd56e43b3a29fb8360bd94e31cd2eaab1d3d",
      "tree": "c536c5588f8a96f4559ca00921c7852a82558ea5",
      "parents": [
        "6b22aa5106e60545119b9eeaceaa9f87ee597305"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 12 15:37:10 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 12:27:06 2016 -0700"
      },
      "message": "Convert art gtests to Android.bp\n\nThis splits the compilation and running of the art gtests into two\nseparate locations.  The tests are now compiled in multiple Android.bp\nmodules in each directory.  art.go collects the installed locations of\neach test and exports it as make variables.  art/build/Android.gtest.mk\nconverts the list into the rules to run the tests.\n\nThis has a few changes in behavior:\n  - The rules to build tests are now always defined, and will build as\n    part of mmma art or make checkbuild.\n  - Host tests are no longer installed into out/host/linux-x86/bin, they\n    are in out/host/linux-x86/nativetest[64]/\u003cmodule name\u003e/\u003ctest name\u003e\n  - Target tests are now in\n    /data/nativetest[64]/art/\u003carch\u003e/\u003cmodule name\u003e/\u003ctest name\u003e\n\nTest: mmma -j art\nTest: m -j test-art-host\nTest: m -j test-art-target\nChange-Id: Iabcd99d43890e6b693688422b07a283c3226a496\n"
    },
    {
      "commit": "60985b7a56d4fa7170721808734093a3affc41c6",
      "tree": "5d6ece230901d43318da00d51848063644dafa62",
      "parents": [
        "ebb5d0f3bcc1e7cb1a2cd4362dccb68cbdf8bbb4"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Aug 24 13:53:12 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Aug 25 17:36:17 2016 -0700"
      },
      "message": "Background full compaction for CC.\n\nInvoke a full compaction with the CC collector when an app goes to the\nbackground like the HSpace compaction for the CMS collector.\n\nBug: 31039431\nBug: 12687968\nTest: test-art, Ritz EAAC, N9 libartd.so device boot with CC\nChange-Id: I119aa26c1d3c167b12983fffcb16164929bf8f68\n"
    },
    {
      "commit": "346285b55869af2054465fccef2065f7462ac9cd",
      "tree": "0bc092fedc880f5022fcdc6ab0c3a53f5a599dd4",
      "parents": [
        "635ba0cbceb367836dae0cc4da4eb672263e7ef5",
        "185d134a3b43ab7529053e965917e0fa74bceba4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 12 17:33:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 12 17:33:34 2016 +0000"
      },
      "message": "Merge changes I852b4daf,Id648eaed\n\n* changes:\n  Add basic runtime-plugins support.\n  Create a basic agent loading framework.\n"
    },
    {
      "commit": "7cbd27fe778f2c348136540d52b5473e28f5769d",
      "tree": "80c0fa4ff2a223c061245c6799d992cd4d863fa0",
      "parents": [
        "3d1d18d74dfac5039b6093ddf04f74eee4f157a3"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 11 23:53:33 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 12 13:19:51 2016 +0100"
      },
      "message": "Adjust spacing before NOLINT comments in ART.\n\nNote that neither clang-tidy nor cpplint.py complain about\nthese style \"issues\", precisely because of the NOLINT\ncomments.\n\nTest: WITH_TIDY\u003d1 WITH_TIDY_CHECKS\u003d\u0027-*,misc-macro-parentheses\u0027 mmma art\nChange-Id: Id692fd394ffbd4fe208cbbe4407b4d5e208462bb\n"
    },
    {
      "commit": "185d134a3b43ab7529053e965917e0fa74bceba4",
      "tree": "5d3d0cee3aa4c64fc5f36fd5f648e53f6df984ae",
      "parents": [
        "7233c7e752c0d26387d143ee74420e9cd1f09390"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 11 10:48:03 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 11 13:55:03 2016 -0700"
      },
      "message": "Add basic runtime-plugins support.\n\nThis allows one to pass shared-libraries on the command line that the\nruntime will load as plugins. They have access to runtime code and can\ninstall hooks to add functionality. Currently the only hook they can\ntouch is JavaVMExt::AddEnvironmentHook to register a callback for\nGetEnv(). More hooks might be added in the future.\n\nTest: ./test/run-test 900\nChange-Id: I852b4daf5a3fa71e9888722bc07794632c0e5010\n"
    },
    {
      "commit": "7233c7e752c0d26387d143ee74420e9cd1f09390",
      "tree": "680b4c1fc3fddbe6004156e5e02770223f3f8587",
      "parents": [
        "f2b1529b0988a1722b718fee6911e0030e95c9b6"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 28 10:07:45 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 11 13:48:13 2016 -0700"
      },
      "message": "Create a basic agent loading framework.\n\nCurrently we only allow agents to be loaded at runtime startup, though\nthis is expected to change soon.\n\nTest: ./test/run-test --host 900\nChange-Id: Id648eaed4bbbe6fdef41d64922d023a4db0bfa54\n"
    },
    {
      "commit": "14832efeb92334c562ebedef34e920d30e3cee69",
      "tree": "57d10c24966a46ae1c01861ee579ac6000326c45",
      "parents": [
        "c984725d0035e1925371757c38fed339b409e525"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Aug 05 11:44:32 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Aug 09 13:47:49 2016 +0100"
      },
      "message": "Revert experimental lambda feature.\n\nThis is a revert of the following changes :\n\n30c475a2046951a81769c2db0b2dad66cd71e189.\nlambda: Minor capture-variable/liberate-variable clean-up after post-merge reviews.\n\n6918bf13eb855b3aa8ccdddda2d27ae8c60cec56.\nlambda: Experimental support for capture-variable and liberate-variable\n\nfc1ccd740b7c8e96dfac675cfc580122cd1b40a6.\nlambda: Infrastructure to support capture/liberate-variable dex opcodes\n\ne2facc5b18cd756a8b5500fb3d90da69c9ee0fb7.\nruntime: Add lambda box/unbox object equality\n\n2ee54e249ad21c74f29a161e248bebe7d22fddf1.\nruntime: Partially implement box-lambda and unbox-lambda experimental opcodes\n\n158f35c98e2ec0d40d2c032b8cdce5fb60944a7f.\ninterpreter: Add experimental lambda opcodes for invoke/create-lambda\n\na3bb72036f5454e410467f7151dc89f725ae1151.\nAdded format 25x to dexdump(2).\n\nPlus surrounding cleanups.\n\nTest: make test-art\nChange-Id: Ic6f999ad17385ef933f763641049cf721510b202\n"
    },
    {
      "commit": "56fe25895e91d34a0a017429468829a20bdd5ae4",
      "tree": "b000aa1b4a54360db45436a9df872b034e36d79f",
      "parents": [
        "dc4f4d42aa1712a7ac2e4c24c0aebe58b71ae2c0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 14 13:30:03 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 20 18:05:30 2016 -0700"
      },
      "message": "Add a way to measure read barrier slow paths\n\nIf enabled, this option counts number of slow paths, measures the\ntotal slow path time per GC and records the info into a histogram.\nAlso added support for systrace to see which threads are performing\nslow paths.\n\nAdded runtime option -Xgc:measure to enable. The info is dumped\nfor SIGQUIT.\n\nTest: Volantis boot with CC, test-art-host with CC, run EEAC with CC\nand -Xgc:measure\n\nBug: 30162165\n\nChange-Id: I3c2bdb4156065249c45695f13c77c0579bc8e57a\n"
    },
    {
      "commit": "138dbff9246c89ac9fbe0b086b54fdab3f4451fb",
      "tree": "07afe983b3892505d4a5bdd3b3bdd5fe126e76c7",
      "parents": [
        "be84b59e802d9176a9b60b040e0be6bda54e958a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jun 28 19:36:58 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 29 14:31:30 2016 +0100"
      },
      "message": "Clean up profiler options\n\n- remove obsolete options\n- using ProfileSaverOptions instead of hard-coded values in the profile\nsaver\n\nBug: 24698874\nChange-Id: I4ff535d29a644d1bd5509844f89615b70a723749\nTest: cmdline_parser_test, gtest and run-tests pass.\n"
    },
    {
      "commit": "c7ed09bd5d6f2c7af3bcba1c39b3f9185af68796",
      "tree": "bfad0c9f5236cc4d158bc0c64d5ef645ce09d283",
      "parents": [
        "0f35e0b26d8c7738ca7b284357afa9dafb659d47"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 25 20:08:55 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 29 16:06:14 2016 -0700"
      },
      "message": "ART: Log all monitor operations to systrace\n\nAdd a VLOG option (\"-verbose:systrace-locks\") to log all monitor\noperations to systrace. This requires non-fastpath thread\nentrypoints, and ATRACE tags for locking and unlocking.\n\nDo a bit of cleanup to the entrypoint initialization to share\ncommon setup.\n\nBug: 28423466\n\n(cherry picked from commit fc6898769ae1ef91ec3e41c0a273401213cb82cd)\n\nChange-Id: Ie67e4aa946ec15f8fcf8cb7134c5d3cff0119ab3\n"
    },
    {
      "commit": "ffc87076dda9878cb2cc098149bae441d38b9268",
      "tree": "e587208d6a8e62532792add3e1ace6b4e6d73e0f",
      "parents": [
        "97cbc9206e9adc473a90650ebdb5d620f517ff04"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Apr 20 14:22:09 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 28 16:15:04 2016 +0100"
      },
      "message": "Split profile recording from jit compilation\n\nWe still use ProfileInfo objects to record profile information. That\ngives us the flexibility to add the inline caches in the future and the\nconvenience of the already implemented GC.\n\nIf UseJIT is false and SaveProfilingInfo true, we will only record the\nProfileInfo and never launch compilation tasks.\n\nBug: 27916886\n\n(cherry picked from commit e5de54cfab5f14ba0b8ff25d8d60901c7021943f)\n\nChange-Id: I68afc181d71447895fb12346c1806e99bcab1de2\n"
    },
    {
      "commit": "66a55394b0489b30576f90499f24b792a400a2d2",
      "tree": "0ebcacba63101540516ef5c150d0c03d9db9ffe3",
      "parents": [
        "eeb3b0bf5339e24b6f5e22c5a884910000c9bcfb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 19 10:25:39 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 19 10:56:10 2016 -0800"
      },
      "message": "Add VLOG(collector) to reduce log spam\n\nVLOG(gc) is enabled from AndroidRuntime, using it too much produces\nlog spam.\n\nBug: 22858531\n\n(cherry picked from commit a6e1c126299586932ecd3c1133a55a6f8e1107fc)\n\nChange-Id: If60902a8d7855cdabd80208b9b385ce4ba4d9e5f\n"
    },
    {
      "commit": "7ccb63fe85e78dea6c849cf4c6eeba9823d9efd0",
      "tree": "bd43bfdc87f08cd25d7861644d22e68a324ceeea",
      "parents": [
        "8881c422743ac4ffd3d594420fec078d896dd05f",
        "9724c636467d56632a45fdf6353e3d57d1925501"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 26 19:53:18 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 26 19:53:18 2016 +0000"
      },
      "message": "Merge \"Enable interface default methods by default.\""
    },
    {
      "commit": "9724c636467d56632a45fdf6353e3d57d1925501",
      "tree": "f28f6ff8146088eef28405a55a7f6ab517120ae0",
      "parents": [
        "4fe6ce5f48687cf24c91ac9865dbad497ed6c074"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Jan 07 15:42:47 2016 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 26 10:23:06 2016 -0800"
      },
      "message": "Enable interface default methods by default.\n\nThis also enables interface static methods.\n\nThis removes the -Xexperimental:default-methods flag and all places\nwhere we explicitly check for its presence.\n\nBug: 24618811\n\nChange-Id: Icd91e377bd6e1a45a1645f810d15de1b0312e31d\n"
    },
    {
      "commit": "fbc31087932a65e036a153afab3049dc5298656a",
      "tree": "c728b9039a71db3be9cae888ad5e1afc31f34a13",
      "parents": [
        "c7f4e3a5aeaa23342b4e03b0d751f60ac5c5815c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jan 24 11:59:56 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 25 14:22:15 2016 -0800"
      },
      "message": "Revert \"Revert \"Load app images\"\"\n\nThis reverts commit 1bc977cf2f8199311a97f2ba9431a184540e3e9c.\n\nBug: 22858531\n\nChange-Id: Ide00bf3a73a02cba3bb364177204ad1b13f70295\n"
    },
    {
      "commit": "1bc977cf2f8199311a97f2ba9431a184540e3e9c",
      "tree": "580a02752d8e447f6dce7cce01386c7e2a9a87f4",
      "parents": [
        "f7fd970244f143b1abb956e29794c446e4d57f46"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 23 14:15:49 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 23 14:15:49 2016 +0000"
      },
      "message": "Revert \"Load app images\"\n\nFails when a method is duplicated (see test 097-duplicate-method)\n\nBug: 22858531\n\nThis reverts commit f7fd970244f143b1abb956e29794c446e4d57f46.\n\nChange-Id: Ib30ae5be00cc568e799290be6b3c8f29cbbe4c20\n"
    },
    {
      "commit": "f7fd970244f143b1abb956e29794c446e4d57f46",
      "tree": "aac1f57ac70747957f609bb46305dfeca87645a1",
      "parents": [
        "95005291d8ebdd1d2ac58ffc5181fef4fbbf2383"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 09 11:16:49 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 22 15:01:55 2016 -0800"
      },
      "message": "Load app images\n\nSupport in-place patching of the app image based on boot image\nlocation and app oat location. Only loads for art run test so far\nsince we do not automatically generate app images for app installs.\n\nN5 maps launch time (~200 runs):\nBefore: 930ms\nAfter: 878.18ms\nAfter + image class table: 864.57ms\n\nTODO:\nOatdump support.\nStore class loaders as class roots in image.\n\nBug: 22858531\n\nChange-Id: I9cbc645645e62ea2ed1ad8e139e91af7d88514c1\n"
    },
    {
      "commit": "dcdc85bbd569f0ee66c331b4219c19304a616214",
      "tree": "b5ab789248e279318f6c1e3f6c511703d7294476",
      "parents": [
        "48944c760b196188b968b7af81439466cf987a75"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Dec 04 14:06:18 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 23 21:14:23 2015 -0800"
      },
      "message": "Dex2oat support for multiple oat file and image file outputs.\n\nMultiple changes to dex2oat and the runtime to support a --multi-image\noption. This generates a separate oat file and image file output for\neach dex file input.\n\nChange-Id: Ie1d6f0b8afa8aed5790065b8c2eb177990c60129\n"
    },
    {
      "commit": "4741516396e9dbfb3afc2c1d8241a7e4e26a6302",
      "tree": "5b828a40c6a4342e4a3fbe995560df014db8fa81",
      "parents": [
        "7f3b38cc23b638ab84ac01a94e90f0456da3b688",
        "751beff19b36f777d9e3a966d754fd9cfad5d534"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Dec 16 15:21:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 16 15:21:25 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Introduce support for hardware simulators, starting with ARM64\"\"\""
    },
    {
      "commit": "64fff41f639a7b85b2e172977175b3c79151634e",
      "tree": "67bcdff6c0d4c92d4e3f023927c0891447d35854",
      "parents": [
        "533ffe5369cdaeb8ab7986b1fefece32351c0366"
      ],
      "author": {
        "name": "Kevin Brodsky",
        "email": "kevin.brodsky@linaro.org",
        "time": "Tue Nov 24 14:24:34 2015 +0000"
      },
      "committer": {
        "name": "Kevin Brodsky",
        "email": "kevin.brodsky@linaro.org",
        "time": "Wed Dec 09 11:42:12 2015 +0000"
      },
      "message": "Clarify --boot-image help message\n\nMake dex2oat print the same help as e.g. oatdump regarding\n--boot-image and clarify the example, this is particularly important\nas the automatic addition of the arch to the path is quite\ncounterintuitive.\n\nChange-Id: I234b498d5deca99bb988a9c24ff9febc6349eb9e\n"
    },
    {
      "commit": "88b2b80aed15bb1f931cddd40e44ca525ef10018",
      "tree": "04b2f9d27863cd469dae8050335f197496f24ff2",
      "parents": [
        "cf6bd55863ded11e0533966657871aca444505a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 04 14:19:04 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 07 12:38:21 2015 +0000"
      },
      "message": "Allow initializing runtime with parsed options.\n\nNeeded by upcoming refactoring of dex2oat to allow\nearly writing of dex files to the oat file.\n\nChange-Id: Ia13c26132846801522f181f51f64035d625e8416\n"
    },
    {
      "commit": "295a5963dc127d5d6a269d672d47512f51992915",
      "tree": "34beb9d23681d2aec1251e78a8e4725eae3632f1",
      "parents": [
        "34053d1f5a9a3d98b5e45d395ed95ba66b518d4d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 19 18:17:41 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 19 18:17:41 2015 +0000"
      },
      "message": "Fix cmdline parser test.\n\nChange-Id: I6f03552d8d48e875f80a69455397146b132ed623\n"
    },
    {
      "commit": "0a3be1620a3560253cfa789cb9819013293c5654",
      "tree": "7bdbc40b620706a83a0904ee1544e4be1c61f695",
      "parents": [
        "991842a5273d20695dd5f35eb9a9e28c386c5b4b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 18 11:15:22 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 19 11:30:39 2015 +0000"
      },
      "message": "Increase code cache after 1 full collection.\n\nAlso add a max capacity option.\n\nChange-Id: Icd442b72e9be0c6b091b588b4c4473c69b7cde10\n"
    },
    {
      "commit": "751beff19b36f777d9e3a966d754fd9cfad5d534",
      "tree": "450cb7ef8cb9f955a6d689c394bd85bc9eea14f1",
      "parents": [
        "4bbe7807f313bb8e59131812c31bf31513094f8f"
      ],
      "author": {
        "name": "Phil Wang",
        "email": "phil.wang@linaro.org",
        "time": "Fri Aug 28 15:17:15 2015 +0800"
      },
      "committer": {
        "name": "Phil Wang",
        "email": "phil.wang@linaro.org",
        "time": "Fri Nov 06 14:44:20 2015 +0800"
      },
      "message": "Revert \"Revert \"Introduce support for hardware simulators, starting with ARM64\"\"\n\nThis reverts commit 4cd27d64b0bbdde61fa3f6674ceb24221853ac2c.\n\nThis depends on VIXL 1.11.\n\nChange-Id: I402c1fd6bbb218ba80ef8e59af203c9276151059\n"
    },
    {
      "commit": "eb7c144a6aff7da673ba53d501c46f00311d4d7f",
      "tree": "feec33dd2e711800305477b092970500991a3993",
      "parents": [
        "98ae42010a6e6a0e4c5bcc4d6a357805eef3f4ff"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Aug 31 13:17:42 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 13 13:09:37 2015 -0700"
      },
      "message": "Add initial default method support to Art\n\nThis commit starts the process of adding default methods and their\nassociated pieces to ART.\n\nThis adds full support for calling default methods using\ninvoke-interface and invoke-virtual on objects implementing the\ninterfaces. Verifier is changed to allow this when the runtime is\nstarted with -Xexperimental:default-methods.\n\nThis also adds support for defining and calling static methods on\ninterface classes with invoke-static.\n\nDirectly calling overridden default methods using invoke-super is not\nyet supported.\n\nThis adds 5 new run-tests for this functionality.\n\nBug: 24618811\n\nChange-Id: I35ca800d99d3329348b277789b70ceeeba6e7f03\n"
    },
    {
      "commit": "3887c468d731420e929e6ad3acf190d5431e94fc",
      "tree": "67dacb849e722e33e118b97714a48e467c06cbd5",
      "parents": [
        "6a5037eb3340e4c981fd7de3ff45167ee5b7fc82"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 12 18:15:42 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 12 18:15:42 2015 +0100"
      },
      "message": "Remove unnecessary `explicit` qualifiers on constructors.\n\nChange-Id: Id12e392ad50f66a6e2251a68662b7959315dc567\n"
    },
    {
      "commit": "7617abdb402fd0419daa3eefb2ad059ccbb8b6db",
      "tree": "85ca02f6446cd50523156ea916d5524eaf3bf2dc",
      "parents": [
        "479ebe076561e4a48129ab0c78cf8ca93c44baf6"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 10 18:27:47 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 17 17:38:46 2015 -0700"
      },
      "message": "runtime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS\n\nUse ART_TEST_INTERPRETER_ACCESS_CHECKS\u003dtrue to run all the tests through\nthe interpreter with access checks enabled. The normal interpreter tests\ndo not currently enable access checks, which means that a large part of\nthe interpreter codebase is untested.\n\nThe verifier will force every class into a soft fail mode if\n-Xverify:softfail is used, thereby ensuring that if used along with the\ninterpreter (-Xint) that the interpret is always in access checks mode.\n\nThis is used alongside with --compile-filter\u003dverify-at-runtime to\nprevent the AOT compiler from putting down any code.\n\nChange-Id: I35a10ed8c43d76fa96133cf01fdad497da387200\n"
    },
    {
      "commit": "01aaf6ef3e3e35cc8e41cf3fe899a7bf337042f4",
      "tree": "d19b35a078536b6190d861810aa443ccd7e2fcdb",
      "parents": [
        "2b252dc15995a708aead33aab6d307205d860a88"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jun 19 22:05:39 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 01 12:32:13 2015 +0100"
      },
      "message": "Allow for sig chain to be disabled.\n\nTools like dex2oat or patchoat don\u0027t need the sig chain or the fault\nmanager. This also enables building a statically link version of\ndex2oat.\n\nChange-Id: I9897728cac48acade854bb027bfde860628ebf84\n"
    },
    {
      "commit": "310008008c90fea246efd00cb99ee7ded97c5209",
      "tree": "93ef04470ec9c883e003b0a8043b370b8f05718f",
      "parents": [
        "f7012291ed9c984e2b50d83d7a2d5758cd64c99a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jun 14 14:14:37 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 22 15:45:13 2015 -0700"
      },
      "message": "New experimental GC stress mode\n\nTries to do a GC for every unique call stack (up to 16 frames).\nThe goal is to catch moving GC bugs and lock violations without being\nrediculously slow. Some tests fail on 64 bits, 32 bit host doesn\u0027t\nwork. N5 is booting.\n\nAdded runtime -Xgc options: gcstress and nogcstress.\n\nBug: 21664466\n\nChange-Id: Icb8e420f2048e8ee83bcca7937563166a2638f5c\n"
    },
    {
      "commit": "158f35c98e2ec0d40d2c032b8cdce5fb60944a7f",
      "tree": "63bb3bbed85b0add42c7fdc714cd611424d8af2e",
      "parents": [
        "c449e8b79aaaf156ce055524c41474cc1200ed5a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jun 10 15:55:30 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jun 18 10:22:27 2015 -0700"
      },
      "message": "interpreter: Add experimental lambda opcodes for invoke/create-lambda\n\nThese opcodes are not yet fully specified, and *will* change before they become shippable.\nDo not write production code against experimental opcodes.\n\n--\n\nImplement partial interpreter support for new dex instructions invoke/create-lambda, and a\nnew opcode format 25x.\n\n* Does not verify, in fact verification will soft fail when we see those opcodes.\n* Compilers will punt to interpreter since they don\u0027t support new opcodes.\n* As there is no way to capture/liberate variables yet, the \"closure\" is just\n  an ArtMethod for the time being.\n\nAll new opcodes are disabled by default, use runtime option -Xexperimental-lambdas to enable them.\n\nFor example:\n  dalvikvm ... -Xexperimental-lambdas ...\n  dex2oat --runtime-arg -Xexperimental-lambdas ...\n\nChange-Id: I6c996ca32a9b54ec45ec21d7a959b84dfb8a24eb\n"
    },
    {
      "commit": "bba348ef12b8dad2bdb8ce32bd0202ad7a38a315",
      "tree": "493b8a7416d05fbabe2510cde693ec5d6355ae0f",
      "parents": [
        "430afefe1cced35cf5eb12ce7a6dcbfc5007c97e"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Jun 01 08:28:18 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Jun 09 15:33:00 2015 +0200"
      },
      "message": "Bring back verbosity override\n\nBrings back the possibility to override verbosity locally (after\ncommand-line parser changes). Also adds a test for \"-verbose:deopt\"\ncommand-line option.\n\nChange-Id: I634d5226ef473ec4d965d620e973e9e677c0069d\n"
    },
    {
      "commit": "80afd02024d20e60b197d3adfbb43cc303cf29e0",
      "tree": "ef054c7b4f2a739f7cf063e0bc4c501c2c7e41b5",
      "parents": [
        "559b178e34c5d92e7932f92e5d8a981ac334606f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 19 18:08:00 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 26 15:59:02 2015 +0100"
      },
      "message": "ART: Clean up arm64 kNumberOfXRegisters usage.\n\nAvoid undefined behavior for arm64 stemming from 1u \u003c\u003c 32 in\nloops with upper bound kNumberOfXRegisters.\n\nCreate iterators for enumerating bits in an integer either\nfrom high to low or from low to high and use them for\n\u003carch\u003eContext::FillCalleeSaves() on all architectures.\n\nRefactor runtime/utils.{h,cc} by moving all bit-fiddling\nfunctions to runtime/base/bit_utils.{h,cc} (together with\nthe new bit iterators) and all time-related functions to\nruntime/base/time_utils.{h,cc}. Improve test coverage and\nfix some corner cases for the bit-fiddling functions.\n\nBug: 13925192\nChange-Id: I704884dab15b41ecf7a1c47d397ab1c3fc7ee0f7\n"
    },
    {
      "commit": "f3d1f94cf730948f8978befa7cf60ab28ff0f281",
      "tree": "f72b66944fa37839caca105446240e00294744b6",
      "parents": [
        "ef4366a159ecdd357c98e577583bbe224d065128"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 18 21:41:13 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 18 21:44:33 2015 -0700"
      },
      "message": "ART: Add verbose:deopt logging\n\nAdd verbose logging for deoptimization. Can be enabled with the\nregular command line option \"-verbose:_\".\n\nChange-Id: Iab63e02f3a4e0a213fc61efed1118fe829feeaa4\n"
    },
    {
      "commit": "2cebb24bfc3247d3e9be138a3350106737455918",
      "tree": "d04d27d21b3c7733d784e303f01f873bb99e7770",
      "parents": [
        "1f02f1a7b3073b8fef07770a67fbf94afad317f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 16:50:40 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 12:44:27 2015 -0700"
      },
      "message": "Replace NULL with nullptr\n\nAlso fixed some lines that were too long, and a few other minor\ndetails.\n\nChange-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb\n"
    },
    {
      "commit": "758a801b66c134361a7b43f7e83f85d1fb800c4c",
      "tree": "35b060c780fcf6e7c268fec47df40c74b5ab8b05",
      "parents": [
        "e8aae00fa400efbb8f998a5dbf68eb42810889c1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 21:28:42 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 14:03:17 2015 -0700"
      },
      "message": "ART: Enable Clang\u0027s -Wdeprecated\n\nReplace throw() with noexcept.\n\nAdd default copy constructors and copy assignment constructors for\ncases with destructors, as the implicit definition is deprecated.\n\nChange-Id: Ice306a3f510b072b00bec4d4360f7c8055135c9d\n"
    },
    {
      "commit": "66d874d96d5699bb090c59f47a5a528956ca053e",
      "tree": "d59bf83a08fead7d9823230831bea63c9e43a62c",
      "parents": [
        "2cfdabd2bb4833d7092819d27ef08a9e1cdffead"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Jan 15 09:37:19 2015 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Mar 09 14:46:23 2015 -0700"
      },
      "message": "Create OatFileAssistant class for assisting with oat files.\n\nThe oat file assistant is used for determining whether dex2oat or\npatchoat is needed, for running dex2oat or patchoat as needed to make\nan oat file up to date, and to load dex files associated with a given\ndex location.\n\nThe introduction of the OatFileAssistant class is meant to clean up and\nconsolidate code related to the management of oat files that was\nduplicated and spread across dalvik_system_DexFile.cc and\nclass_linker.cc.\n\nBug: 11301553\nChange-Id: I0c16027b9bae4570c2c50faa9c14f581c0cbafb8\n"
    },
    {
      "commit": "26826998ce30541c2a503f4d8e60df1caa2c3d55",
      "tree": "719fd04161f76a31072ebeebaf55f29fb558ba72",
      "parents": [
        "de67540e7e2f681d1b35636ed94137506c1134ba"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 05 18:48:52 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 05 18:48:52 2015 -0800"
      },
      "message": "ART: Fix Cmdline Parser test\n\nFollow-up to https://android-review.googlesource.com/138593.\n\nBug: 17950037\nChange-Id: Ie8b796262989bf8374f5cecff15a1f2dad2cb3c1\n"
    },
    {
      "commit": "42f8c1c39b74aae50714488525d14de30f9722c9",
      "tree": "6f8fb16d45fc182c3a7669651e2be14f38a788e8",
      "parents": [
        "8fa836e16e65aca3aeaa1c4784157207188e6373",
        "c801f0d79b8c5bf28401a040356b59b2f41520f4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 25 04:56:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 25 04:56:43 2015 +0000"
      },
      "message": "Merge \"ART: Fix \"unused parameters\"\""
    },
    {
      "commit": "c801f0d79b8c5bf28401a040356b59b2f41520f4",
      "tree": "ebb9d2dbe0e4dae09b0b83c71d2383611f0b2737",
      "parents": [
        "17b01497b29f980a3d515a01adcb5f47df67ac63"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 24 20:55:16 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 24 20:55:16 2015 -0800"
      },
      "message": "ART: Fix \"unused parameters\"\n\nGCC 4.8 decides that parameters for functions implemented with\n\"\u003d default\" are unused. This currently only impacts x86, but remove\nthe parameter names anyways.\n\nChange-Id: I01865faa81af68c4c0e0b1cb1fb19e88ef548769\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": "b3b173bbbd1d1cbad555de13c3fa6765f5078bce",
      "tree": "89d380f42aed1a4c60db40f8be7d22501eaafa32",
      "parents": [
        "e5f5953e744060fde3b4489cea4d934d529e3e32"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Feb 06 09:16:32 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Feb 17 22:42:43 2015 +0100"
      },
      "message": "Follow up 129144\n\nPasses JDWP options to debugger on runtime init so we no longer need\nto keep them on the heap.\n\nUpdates ParseJdwpOption to return Result for consistency.\n\nBug: 19275792\nChange-Id: I68b7e58908164d3e4cf9e3fbcc3dfab6ce0579a5\n"
    },
    {
      "commit": "b991d334e294cb9fb75bd1c36e2435171c084cd1",
      "tree": "03afa31f130c908422e6f9634f0fcca889d7ba4b",
      "parents": [
        "61fdf5bca503c30ba1e4dcaf333a8d3299f3bde6",
        "3be6e9d904baa13d7cf51dfc6742dea12e766b2e"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Feb 06 06:15:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 06 06:15:46 2015 +0000"
      },
      "message": "Merge \"Read JDWP options from runtime\""
    },
    {
      "commit": "61fdf5bca503c30ba1e4dcaf333a8d3299f3bde6",
      "tree": "8b1095596de05f9c9e730e653e8b50da63367daa",
      "parents": [
        "ca9a26859d2ca8e106316dd5f16b60a325f0533c",
        "60d77c632001b48ac32de29899c963245538f4a0"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 05 20:34:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 05 20:34:48 2015 +0000"
      },
      "message": "Merge \"art: Fix broken cmdline_parser_test\""
    },
    {
      "commit": "60d77c632001b48ac32de29899c963245538f4a0",
      "tree": "1cd61b250561e9fcf92c8a604507c8aec40e91b9",
      "parents": [
        "19929654ddf3bce1b89db92a9b7fb47d6e91e2f8"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 05 11:22:45 2015 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 05 11:22:45 2015 -0800"
      },
      "message": "art: Fix broken cmdline_parser_test\n\nBug: 19274810\nChange-Id: I28df72dced9bdbbe0684836e9a18334994183421\n"
    },
    {
      "commit": "3be6e9d904baa13d7cf51dfc6742dea12e766b2e",
      "tree": "43ad5f3655d73243ab212eefb83169471a1d87b3",
      "parents": [
        "24898d447640c3a45e6fc9f404b049eddc5a2709"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Feb 05 16:30:58 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Feb 05 18:28:54 2015 +0100"
      },
      "message": "Read JDWP options from runtime\n\nAllocates JDWP::JdwpOptions on the heap and copies parsed options to\navoid the need to include jdwp/jdwp.h into runtime.h file.\n\nAlso does some minor cleanup and removes the old JDWP options parsing\ncode that became dead code after we move it to the new command-line\nparser.\n\nBug: 19275792\nChange-Id: I71901c89fbf2cc3c1901a089e2a98b4326c6ee70\n"
    },
    {
      "commit": "8f4ee5ca0bccacd392295e1b1b0704c281480fe2",
      "tree": "520b5b283d66220b43d0619ea881377de21895c0",
      "parents": [
        "911b4be50c379d052dd9e5f9b59ce91df1340453"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 05 10:14:10 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 05 10:31:16 2015 +0000"
      },
      "message": "Disable test, it fails on target and read-barrier config.\n\nChange-Id: Ib1ae28b1e81a1355196c32c43765a6f5466ca728\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"
    },
    {
      "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": "c24f3990db5845691016b935df3d9382b6762f0f",
      "tree": "d5e295f60196d305583fa5b58120c9cc189f2127",
      "parents": [
        "55b752a817a08be46b167e07d7fee3d20a8e6a9c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 17 20:40:11 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 17 20:40:11 2014 -0800"
      },
      "message": "ART: Fix oatdump\n\nRefactor and modify cmdline.h to allow oatdump to run without a\nRuntime.\n\nBug: 18789891\nChange-Id: I1d7a1585e3672d04e58dbac9a4d4bd835c1c9143\n"
    },
    {
      "commit": "3774335b08076117d6950cd472cdd59a167470b5",
      "tree": "c2d24814e2d829f55ae25415b5b578cc040e0934",
      "parents": [
        "5b6912e455da798a79a4bb3235e276351b38ab58"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Nov 13 14:38:00 2014 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Dec 16 12:00:59 2014 -0800"
      },
      "message": "Add a new imgdiag tool to diff boot.art/core.art against a process\n\nAnalyze the dirty memory pages of a running process per-object,\nthis allows is to to fine-tune the dirty object binning algorithm in\nimage writer.\n\nAlso:\n* Factor out oatdump command line parsing code into cmdline.h\n* Factor out common build rules for building variations of binaries\n* Add a gtest for imgdiag\n\nBug: 17611661\nChange-Id: I3ac852a0d223af66f6d59ae5dbc3df101475e3d0\n"
    }
  ]
}
