)]}'
{
  "log": [
    {
      "commit": "82d046e7c9daad9b706cbec7df7025c5a4ef9163",
      "tree": "92b7deea052015dd64bea6fc72d76c67f69e0e5d",
      "parents": [
        "5a87e19e4bf1b6719c2aad3effde1b38d2c3085c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Apr 23 08:14:19 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 26 12:37:04 2018 -0700"
      },
      "message": "Add a profiling library\n\nMove profile_compilation_info to a separate library.  Another step\ntowards building many of our tools without libart[d].\n\nBug: 78459333\nTest: make -j 50 checkbuild\nChange-Id: Ib281d3d1fde6d06ebb429c5d39d62a7038af0f44\n"
    },
    {
      "commit": "67bf42e89592c3a1c648f927f2ce3ccb189a1161",
      "tree": "054d5b7adf7cc62d4d2a2118a70c0fbdd1751610",
      "parents": [
        "d961043ff1dd6fddb68aa90c1f939cfafec24219"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Feb 26 16:43:04 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 28 15:08:21 2018 -0800"
      },
      "message": "Header library to remove dependence on runtime/\n\nAdd a new header library to remove libdexfile and others\u0027 dependence on\nruntime (typically runtime/base) includes in libdexfile.  Also a small step\nto tease dexlayout and profman away from relying on these as well.\n\nBug: 22322814\nTest: make -j 50 checkbuild\n      make -j 50 test-art-host-gtest\n\nChange-Id: I38e2fe399a75f4bc6318c77a71954c00ea73ec2b\n"
    },
    {
      "commit": "b69d2d3c3af7a7a62efb38d04dec878ea9b0b43c",
      "tree": "4220e5b7475b5c53b19609ef46d1d081bf8357cb",
      "parents": [
        "c758875461cca47d1b342c3c56a218a704b04365"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 21 13:37:17 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 21 22:42:13 2018 +0000"
      },
      "message": "Remove generate-operator-out.py symlinks\n\nRewrite the operator out step to use a python_host_binary instead.\nTest: mma -j50\n\nChange-Id: I1503ad9851bf6d7bae8964f7cb91ba7f19b660ca\n"
    },
    {
      "commit": "fcbe15ce26930c0c4bb33998fc2abbe4f8770dbe",
      "tree": "6513a2eaf1251e93578916b5171dc42984de7da3",
      "parents": [
        "b40fa7c33075292beeb6840ac679ffd08fd1f719"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Feb 15 09:41:13 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Feb 15 15:15:13 2018 -0800"
      },
      "message": "Build debug library libdexfiled\n\nAdd a debug version of libdexfile for use when CHECKs, etc., are\nenabled.\n\nBug: 22322814\nTest: make -j 50 checkbuild\nChange-Id: I263138611bcdde9dbc8f619bcb2a0a6d3a09fbf6\n"
    },
    {
      "commit": "334b9d73482fba9c335d9b758041fc0865ef74d4",
      "tree": "1e0d2050065110c37ee03ee8010ec24c8d31f32e",
      "parents": [
        "db8d9091bbab41060584ab80882b60df20337da7"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Feb 12 18:27:56 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 14 10:57:05 2018 -0800"
      },
      "message": "Move libdexfile out of runtime\n\nMove the files out of runtime, leaving unfortunate dependences still\nthere on runtime/base (for the moment).  Also separates the build logic\ninto two Android.bp files.\n\nBug: 22322814\nTest: make -j 50 test-art-host\nChange-Id: Ib0a1cda833b29ecfa4c8c50f23fab89ba666f491\n"
    },
    {
      "commit": "0225f8e2939a9340cb7dcebfcfe7996a2bd9bce9",
      "tree": "fd32362dff4ecdc8ff8b0d800a1b46fb0d9d0104",
      "parents": [
        "c7e546ff3963a1d51b1f100d308db735bd19f736"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 31 08:52:24 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 31 01:24:53 2018 -0800"
      },
      "message": "Revert \"Revert \"Make libdexfile build independent of runtime dir\"\"\n\nThis reverts commit 787784f9effb126b5d0d3dc97d544c4a477b5daf.\n\nReason for revert: Bot configuration issue.\n\nChange-Id: I6a10bb4a9571f89c7e4dd095f9157e830a44e2de\nBug: 22322814\nTest: make -j 50 checkbuild\n"
    },
    {
      "commit": "787784f9effb126b5d0d3dc97d544c4a477b5daf",
      "tree": "1ff6d9fd284a4dd2a337165dff20e71137997c9d",
      "parents": [
        "b40b7e73469339a6b667b4a2e2b8690112a74dc9"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 18:48:51 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 18:48:51 2018 +0000"
      },
      "message": "Revert \"Make libdexfile build independent of runtime dir\"\n\nThis reverts commit b40b7e73469339a6b667b4a2e2b8690112a74dc9.\n\nReason for revert: on device libdexfile.so missing\n\nChange-Id: I9bd61a98bef870400580e8c991cb061d3f57fa72\n"
    },
    {
      "commit": "b40b7e73469339a6b667b4a2e2b8690112a74dc9",
      "tree": "7e8a34d9c7894c4c946f674f19f0a0a512b95184",
      "parents": [
        "9690ad794b324ba54e936608881ac0f62538b97a"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Jan 25 17:11:07 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 01:17:58 2018 -0800"
      },
      "message": "Make libdexfile build independent of runtime dir\n\nRemove libdexfile\u0027s dependency on utils.cc and move utf.cc into\n/dex.  Remove libdexfile\u0027s constituent sources from libart and\nuse libdexfile wherever libart is. Also remove some ART-specific\ninterfaces.  Libdexfile\u0027s tests remain to be converted, plus\nmoving the files to a new directory peer to runtime/.\n\nBug: 22322814\nTest: make -j 50 test-art-host\nChange-Id: Ifaf695216e4a0e43d3aa377984d933f7a2a243c2\n"
    },
    {
      "commit": "2b9c35be35a759ba2032692648f5bbcb1e7e78c8",
      "tree": "4825fdb4a4ecd27922dc9c945b30423534e67010",
      "parents": [
        "6d4c343ee5db18f039aeb3e07ff8d3c1fd37c3a0"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jan 12 15:44:43 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 16 15:32:12 2018 +0000"
      },
      "message": "Introduce new build tool: hiddenapi\n\nNew tool `hiddenapi` iterates over all class members inside given\nDEX files and modifies their access flags if their signatures\nappear on one of two lists - greylist and blacklist - provided as\ntext file inputs. These access flags denote to the runtime that\nthe marked methods/fields should be treated as internal APIs with\nrestricted access.\n\nTwo bits of information are encoded in the DEX access flags. These\nare encoded as unsigned LEB128 values in DEX and so as to not\nincrease the size of the DEX, different modifiers were chosen to\ncarry the information under different circumstances.\n\nFirst bit is encoded as the inversion of visibility access flags\n(bits 2:0). At most one of these flags can be set at any given time.\nInverting these bits therefore produces a value where at least two\nbits are set and there is never any loss of information.\n\nSecond bit is encoded differently for each given type of class\nmember as there is no single unused bit such that setting it would\nnot increase the size of the LEB128 encoding.\n - Bit 5 for fields as it carries no other meaning\n - Bit 5 for non-native methods, as `synchronized` can only be set\n   on native methods\n - Bit 9 for native methods, as it carries no meaning and bit 8\n   (native) will make the LEB128 encoding at least two bytes long\n\nThis tool is meant to be applied on boot class path DEX files and\nas such, this encoding is not part of the DEX specification and may\nchange in the future. Access flags returned by ClassDataItemIterator\nare stripped of these hidden flags and thus fully transparent to the\nruntime.\n\nTest: m test-art-host\nBug: 64382372\nChange-Id: Ifc237ff8a35a8b470b7fc682a9cb879370d1e6e9\n"
    },
    {
      "commit": "fbf9670f31d09c47078d43fd85ee2bda23273d26",
      "tree": "c2ee763c73f3cf89cfe3aed6230c1830b27583b3",
      "parents": [
        "3979571aa1dfc907569fb7e27ab225ca89f6f86e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 14 13:27:13 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 19 14:52:08 2017 -0800"
      },
      "message": "Add adbconnection plugin\n\nThis plugin will take care of creating and managing a debugger connection\nthrough the adb daemon. This involves sending DDMS messages from the\nruntime, loading the JDWP agent when required, and setting up the\nconnection. We need this since DDMS packets can be sent even if there has\nnot been a full handshake done with the JDWP agent.\n\nAdd an \u0027adbconnection\u0027 value to \u0027-XjdwpProvider:...\u0027 to allow one to\nrequest that the adbconnection plugin be used to provide JDWP\nfunctionality.\n\nBug: 62821960\nTest: Manual, Flash walleye, debug apps\n\nChange-Id: Id9bed589b7c5e3830e6cdfbfee460b091459a27b\n"
    },
    {
      "commit": "3979571aa1dfc907569fb7e27ab225ca89f6f86e",
      "tree": "fd91ada65bffa3fcefc773a36cbf8055bf688a1c",
      "parents": [
        "403207107da7f11525c4d305184c56b35ec1c17a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 14 11:58:21 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 19 14:52:01 2017 -0800"
      },
      "message": "Add fd-forwarding transport lib\n\ndt_fd_forward is a jdwpTransport that takes as an address a local\nsocket file-descriptor and uses it to allow some other piece of code\nor program to control the actual attach and communication process.\n\ntools/dt_fds_forward.py is a python program that can be used as a\ncontroller for this comms system. This is useful for testing. It\nimplements the same behavior (excepting DDMS) that the adbconnection\nplugin will but is capable of being easily used on normal host\nmachines. Unlike the plugin, dt_fds_forward.py works by allowing a\nsocket file-descriptor to be inherited by the forked Java Language\nRuntime.\n\nThe overall goal of this transport is to use it to allow us to safely\nmultiplex the out-bound data with DDMS data. This is needed to let us\nmatch current DDMS behavior which transmits packets in the blind on\nthe same channel JDWP traffic is sent on.\n\nTest: ./tools/dt_fds_forward.py  \\\n        ./test/run-test --host --dev 001-HelloWorld\nTest: jdb -attach localhost:12345\nTest: nc localhost 12345, handshake, disconnect\nTest: jdb -attach localhost:12345, detach, attach\n\nTest: ./tools/dt_fds_forward.py  \\\n            --debug-lib $JAVA_HOME/jre/lib/amd64/libjdwp.so \\\n            -- \\\n            ./test/run-test --host --jvm --dev 001-HelloWorld\nTest: jdb -attach localhost:12345\n\nBug: 62821960\nBug: 69169846\n\nChange-Id: I654db6c6991c006933e1e1f0a4e41c13f795f9a8\n"
    },
    {
      "commit": "0e151e7940edd31c1dc332d0b56fa9295f08c6f7",
      "tree": "3a91d116134dfae5695d19dffa23ae2210227da1",
      "parents": [
        "31275df5ea1b91ed668618d6ec64a76d67cee73c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Oct 25 10:50:35 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Oct 26 11:47:20 2017 -0700"
      },
      "message": "Add agent for printing breakpoints\n\nThis can be used to test performance of breakpointed code in a\nlightweight way or to ensure that code is reaching expected locations.\n\nSee tools/breakpoint-logger/README.md for information on how to use.\n\nAlso added the ability to pass explicit agents for run-test to load\nbefore running tests.\n\nTest: ./test/run-test                                                 \\\n        --host                                                        \\\n        --dev                                                         \\\n        --with-agent                                                  \\\n        \u0027libbreakpointlogger.so\u003dLMain;-\u003emain([Ljava/lang/String;)V@0\u0027 \\\n        001-HelloWorld\n\nBug: 68259370\n\nChange-Id: I409c940a34b1e823ec50649cdb3c51e5a81a09ab\n"
    },
    {
      "commit": "161ea9b294c06ba68f3e775be78668215d6c4033",
      "tree": "c555059f2d61608ff49916ec2273abcb73d58d68",
      "parents": [
        "dfce43569a32ed7da881796713647cd8051d0d4e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 18 15:34:08 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 18 19:19:09 2017 -0700"
      },
      "message": "Add libunwindstack to dependencies.\n\nTest: Builds.\nChange-Id: Icb68b8532458a0e761e82bbc2f32dbc835c4fd7b\n"
    },
    {
      "commit": "08771e9c1972665ebbfcae60895cfa7b47d07cb0",
      "tree": "c790b7475d3e3c78b99f4098eb301e9ed39070a2",
      "parents": [
        "6cee5e402cb206f0c0878e999f885a7206dcbb09"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Oct 13 14:30:03 2017 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Oct 16 12:16:06 2017 +0900"
      },
      "message": "libunwind is added to the static depedencies\n\nlibunwindbacktrace no longer includes libunwind. So, libunwind is\nexplicitly added to the dependency list.\n\nBug: 64730695\nTest: build 2017 pixel device\nTest: m dex2oats\nChange-Id: Id2e987bbe17483aa9bea47b4da2f5ae4e6244713\n"
    },
    {
      "commit": "0ac2e5c1013cb41d73aa87c885fd99d4e5eb7d11",
      "tree": "f4d1d5b037010c3b9d94b84fc88331adf5374a39",
      "parents": [
        "8048bf6d13dd4492df8d59ecb795987558e2e579"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Sep 19 15:35:20 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 20 10:37:53 2017 -0700"
      },
      "message": "Add property-changing JVMTI agent wrapper.\n\nAdds libwrapagentproperties agent that allows one to change or add to\nthe system properties observed by a JVMTI agent. This is useful for\ncompatibility as some JVMTI agents expect to be able to find system\nproperties that are not present in ART. With this we can run them\nwithout having to modify the runtime itself.\n\nAlso adds a --agent-wrapper flag to run-jdwp-tests.sh to facilitate\nthe use of this agent.\n\nTest: mma -j40 libwrapagentproperties\nTest: ./art/tools/run-jdwp-tests.sh \\\n        --mode\u003dhost \\\n        --variant\u003dx64 \\\n        -Xplugin:$ANDROID_HOST_OUT/lib64/libopenjdkjvmtid.so \\\n        --jdwp-path /usr/lib/jvm/default-java/jre/lib/amd64/libjdwp.so \\\n        --agent-wrapper $ANDROID_HOST_OUT/lib64/libwrapagentproperties.so\u003d$PWD/art/tools/libjdwp-compat.props\n\nChange-Id: Ic5eef7e9b4b8c54f4b0683dbb4e71768cbf4f97c\n"
    },
    {
      "commit": "0ae15326456aaab7717c09b07eaf2d766dbaadda",
      "tree": "b323ea082a55dacaf348ad3f687cec536b66997b",
      "parents": [
        "6b411fc9fd94da3c552d8b96cee14f6414e7b734"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Sep 14 13:55:06 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 15 10:22:18 2017 -0700"
      },
      "message": "tools: Add new titrace tool to print dynamic instruction counts\n\nImplemented on top of the Tooling Interface (jvmti.h) and works on both\nRI and ART (host/target). See README.md for more details.\n\nExample usage:\n\n$\u003e make libtitrace\n$\u003e java -agentpath:out/host/linux-x86/lib64/libtitrace.so helloworld\n  Hello\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                 TI Trace // Summary\n  ++++++++++++++++++++++++++++++++++++++++++++++++\n     * Single step counter: 405982\n  +++++++++++    Instructions Count   ++++++++++++\n     * aconst_null(op:1), count: 734, % of total: 0.180796\n     * iconst_m1(op:2), count: 470, % of total: 0.115769\n     * iconst_0(op:3), count: 4246, % of total: 1.04586\n     * iconst_1(op:4), count: 3585, % of total: 0.883044\n     * iconst_2(op:5), count: 1068, % of total: 0.263066\n     ............\n\nTest: manual\nChange-Id: I0cd1f4f88e54cf8612641128230b8e93157b48ea\n"
    },
    {
      "commit": "06c42a571358b5e5adb69104b183af8f32f4c07d",
      "tree": "7b218fdb67fef74cdcbc2e3665757485ef89918b",
      "parents": [
        "7f14c2ec37c70010d99cab6806d85018df56c555"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 26 14:17:14 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 31 07:38:43 2017 -0700"
      },
      "message": "ART: Move openjdkjvmti to art/\n\nMove libopenjdkjvmti out of the runtime directory. Let\u0027s not\npollute the runtime library.\n\nTest: m test-art-host\nChange-Id: Idb6b9cebcd61777bd3200437a2ae584a63a4a341\n"
    },
    {
      "commit": "ae616fa0e828cd6cbbae53edf3cf14338ad49dd9",
      "tree": "eb6effbc6bf015c98425f6cf5d99149339b40e8f",
      "parents": [
        "54c1afa173509608085ab63931b82f72ae4b52e1",
        "5d15e6cacd82a3983295e6c3fc03626006baaf70"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 27 15:48:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 27 15:48:11 2017 +0000"
      },
      "message": "Merge \"ART: Move openjdkjvm to art/\""
    },
    {
      "commit": "5d15e6cacd82a3983295e6c3fc03626006baaf70",
      "tree": "55070efc62a05017a279214533fc04635aebc90d",
      "parents": [
        "92b601462ffced04bd66e6ce47097664c746a34c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 26 12:57:41 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 26 12:57:41 2017 -0700"
      },
      "message": "ART: Move openjdkjvm to art/\n\nMove libopenjdkjvm out of the runtime directory. Let\u0027s not\npollute the runtime library.\n\nTest: m test-art-host\nChange-Id: I3864c97c749fd791ab1b43173c2580872cf0d57d\n"
    },
    {
      "commit": "71da4878f2e3f0dc8b7c3a31b4f57172fde5f378",
      "tree": "ae560b5e56ce09cfaaf1f3c04e96366f193c4180",
      "parents": [
        "b22ae40038aeeebb16936fbf62b48f080d6e7ef4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 26 10:02:07 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 26 11:23:03 2017 -0700"
      },
      "message": "ART: Move simulator to art/\n\nMove the simulator library out of the runtime directory. Let\u0027s not\npollute the runtime library.\n\nTest: m\nChange-Id: I351a0061ae628c3af0462b72d4de727db296ec23\n"
    },
    {
      "commit": "36eb313c805713c1367e5b9d73897ade1c24174b",
      "tree": "a2485977f12299a493217ead13a0cb5510c4251d",
      "parents": [
        "d713d29507fb98bea3eee9277f05422a9b641ca1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jan 13 16:32:38 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 24 11:29:34 2017 -0800"
      },
      "message": "Add dexoptanalyzer tool\n\ndexoptanalyzer is a command line tool which analyzes whether or not a\ngiven dex file needs to be dexopted. It is a wrapper around\nOatFileAssistant::GetDexOptNeeded and its results have a mapping to\nOatFileAssistant::DexOptNeeded.\n\nThis is needed for the management of secondary dex file. We need a way\nto retrieve the DexOptNeeded status from installd outside system server.\nWe can\u0027t simply use the system server path (as we do for the main apks)\nbecause system server can\u0027t access content writable by the apps.\n\nBug: 32871170\nTest: m test-art-(host|target)\nChange-Id: Ife1534560ca2658079d4a38a30bc8d94f35fe9c8\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": "6b22aa5106e60545119b9eeaceaa9f87ee597305",
      "tree": "ab26f42ac9fb9fff52c6f0683561c0bcdebd9569",
      "parents": [
        "6b4d988feb18559204f7175914851baf28febd8c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 12 14:35:39 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 12:24:25 2016 -0700"
      },
      "message": "Convert libart-gtest to Android.bp\n\nChange-Id: Ibea17e3e002e6ad3f82158cd3c69d087fa9b15c9\n"
    },
    {
      "commit": "c7376e0f8002d7838c3d69569028fbc9b91a38f3",
      "tree": "c325af4f653255d5957cd16463afbe880d5cdb0d",
      "parents": [
        "47b451546d1a5c0fbb5e3816373395762a736515"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 08 12:52:18 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 12 16:29:02 2016 -0700"
      },
      "message": "Convert more of art to Android.bp\n\nConvert dex2oat, imgdiag, patchoat, and profman to Android.bp.\n\nTest: m -j test-art-host\nTest: mmma -j art\nChange-Id: If2acd47189e5a944732c2c00c2bf31265f887161\n"
    },
    {
      "commit": "fe6064ae8b861f1290aa793ce0de219781da6a10",
      "tree": "a24da585adbafc5932e4c3aab07f0e1d9a639628",
      "parents": [
        "090a5da3a7f320b9d2aa9fa461efc11a7eb39392"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Aug 30 13:49:26 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 08 11:00:53 2016 -0700"
      },
      "message": "Convert more of art to Android.bp\n\nRelanding I1b10f140e17dd5e12a9d7f6a29d47cf61f5bf6ef, with fixes to\ncompile dalvikvm32 and dalvikvm64, and add them as dependencies of\ntests.  Also fixes HOST_PREFER_32_BIT by moving the override from the\ndefaults, which are not used by everything in art, to the art_cc_binary\nmodule type.\n\nTest: rm -rf out/host; m -j HOST_PREFER_32_BIT test-art-host; m -j test-art-host\nChange-Id: I64d3eef5080e128103d052497760c3521cc253c6\n"
    },
    {
      "commit": "1a861719fdadf1a27cf7df9955311cc7d4d4c217",
      "tree": "c15c6f0b213845b20a0bae8b900940a4eecdd3f5",
      "parents": [
        "e251b1204f678919e37da32667fab2c5bbcbbb76"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 07 00:16:35 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 07 00:17:20 2016 -0700"
      },
      "message": "Revert \"Convert more of art to Android.bp\"\n\nThis reverts commits 4a456275e25c536f525b6c020ca38c8ada8a05de and\n198a957915eb75c5f837ea57d385aa6cfa69f76e.\n\nChange-Id: Ibe49f611ae3ed7748bcfc9ac07f8d1f52d6bea3a\n"
    },
    {
      "commit": "4a456275e25c536f525b6c020ca38c8ada8a05de",
      "tree": "f30cb1bbca4dbacc264409ae408a740f2c4dd04d",
      "parents": [
        "9d185da3bef8caf015d3dbf4ad79c520af7ce3b1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Aug 30 13:49:26 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 06 12:15:24 2016 -0700"
      },
      "message": "Convert more of art to Android.bp\n\nChange-Id: I1b10f140e17dd5e12a9d7f6a29d47cf61f5bf6ef\n"
    },
    {
      "commit": "1f7f3bd26ecad4366c904b7e7d05587fc7a83ea2",
      "tree": "73f5c720f744303bc8ae9dad0891264f4788767a",
      "parents": [
        "521691ae4dfad47cf6b46858347fa5fa32fd7bcc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 27 10:12:38 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 25 13:42:11 2016 -0700"
      },
      "message": "Convert libart and dependencies to Android.bp\n\nRe-landing I73839046a5a53eb34cd28eea53149911c568e411, with fixes for mac\nbuild (only apply -Wl,--keep-unique to device x86 builds), typo in\nchecking for ART_HEAP_POISONING environment variable, and removing\n-Wframe-larger-than for debug builds.\n\nTest: mma -j, m -j test-art-host\nChange-Id: If88492174cbcb0d9a8758176c006163a29eaaa63\n"
    }
  ]
}
