)]}'
{
  "log": [
    {
      "commit": "e39f14ff4e0d7c70016874cff24863b912d40bf1",
      "tree": "57588025e96e01ac2998cbdcf0ff12a822fdcd4e",
      "parents": [
        "4e4b62e21672dbacf5d5abb688a126aabad29269"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 10 15:44:25 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 14 13:25:05 2017 +0000"
      },
      "message": "ARM64: Improve String.equals() intrinsic for const strings.\n\nAnd add additional tests to 021-string2.\n\naosp_angler-userdebug:\n  before:\n    arm64 boot*.oat: 43324664\n    arm64 boot*.oat/string compression: 43411112\n  after:\n    arm64 boot*.oat: 43300136 (-24528)\n    arm64 boot*.oat/string compression: 43345464 (-65648)\n\nThe string compression code size difference drops from\n86448 to 45328.\n\nTest: m test-art-target on Nexus 6P\nTest: m test-art-target on Nexus 6P with string compression enabled.\nBug: 31040547\nChange-Id: I99a3777b91b248da2b0ac25abd260f9e5abb2c09\n"
    },
    {
      "commit": "16850aecd661375533404099cbc679aba7377ba4",
      "tree": "5e0f77ed1955df91935837cd086c02360ad52bb6",
      "parents": [
        "fb678bfaad7f432861d26bde8343d53fadd68c07"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 09 14:01:02 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 13 10:24:09 2016 +0000"
      },
      "message": "Fix string compression for embedded zero chars.\n\nTreat embedded zero character as non-ASCII.\n\nTest: m test-art-host\nTest: m test-art-host with string compression enabled.\nBug: 31040547\nChange-Id: Iea6e92f89d424953814953ba27f1c7a991589c65\n"
    },
    {
      "commit": "fdaf0f45510374d3a122fdc85d68793e2431175e",
      "tree": "3315c82410fd42612bb501bed150df454dde0dde",
      "parents": [
        "b02b8d7df48ea3314cfcb3c08d84ac9556363833"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 13 19:29:53 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 09 11:08:31 2016 +0000"
      },
      "message": "Change string compression encoding.\n\nEncode the string compression flag as the least significant\nbit of the \"count\" field, with 0 meaning compressed and 1\nmeaning uncompressed.\n\nThe main vdex file is a tiny bit larger (+28B for prebuilt\nboot images, +32 for on-device built images) and the oat\nfile sizes change. Measured on Nexus 9, AOSP ToT, these\nchanges are insignificant when string compression is\ndisabled (-200B for the 32-bit boot*.oat for prebuilt boot\nimage, -4KiB when built on the device attributable to\nrounding, -16B for 64-bit boot*.oat for prebuilt boot image,\nno change when built on device) but with string compression\nenabled we get significant differences:\n  prebuilt multi-part boot image:\n    - 32-bit boot*.oat: -28KiB\n    - 64-bit boot*.oat: -24KiB\n  on-device built single boot image:\n    - 32-bit boot.oat: -32KiB\n    - 64-bit boot.oat: -28KiB\nThe boot image oat file overhead for string compression:\n  prebuilt multi-part boot image:\n    - 32-bit boot*.oat: before: ~80KiB after: ~52KiB\n    - 64-bit boot*.oat: before: ~116KiB after: ~92KiB\n  on-device built single boot image:\n    - 32-bit boot.oat: before: 92KiB after: 60KiB\n    - 64-bit boot.oat: before: 116KiB after: 92KiB\n\nThe differences in the SplitStringBenchmark seem to be lost\nin the noise.\n\nTest: Run ART test suite on host and Nexus 9 with Optimizing.\nTest: Run ART test suite on host and Nexus 9 with interpreter.\nTest: All of the above with string compression enabled.\nBug: 31040547\n\nChange-Id: I7570c2b700f1a31004a2d3c18b1cc30046d35a74\n"
    },
    {
      "commit": "9c9883bb03de05783d3e24dfc00dee4d03786fe3",
      "tree": "d765d341d46ad88c9bb8effdcfad9493dc9adb27",
      "parents": [
        "fc7798ba8201ae44c5c11384232be7c51afd3727"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 17 14:45:29 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 19 10:47:51 2016 +0100"
      },
      "message": "Fix string compression, add tests.\n\nFix String.compareTo() for interpreter; memcmp() does not\nreturn the required result (only the right sign).\nFix x86-64 stub where the assembler silently accepted and\ngenerated bad code for out-of-range JECXZ.\nAdd extensive tests for String.equals(), String.compareTo()\nand String.indexOf().\n\nBug: 31040547\nTest: Run ART test suite including interpreter tests on host and Nexus 9.\nTest: Ditto with string compression enabled.\nChange-Id: I21b7a74da8a577c8fbaf8d9225f048550236d414\n"
    },
    {
      "commit": "166aaee6aa39c20c87113b3fcf0dcd81e0a934cb",
      "tree": "70ab523f146d164ece8a0e94dbc499783005e3dc",
      "parents": [
        "115c1de1f812d380449ef89cfe50cc4fb4289275"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 18 08:27:23 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 22 20:37:07 2016 -0700"
      },
      "message": "ART: Fix type parameter in tests\n\nMove Class to Class\u003c?\u003e, Constructor to Constructor\u003c?\u003e, and in\ngeneral clean up reflection.\n\nTest: m test-art-host-run-test\nChange-Id: I3a4223ee8d14d032015edf34bf27135757f7138c\n"
    },
    {
      "commit": "848f70a3d73833fc1bf3032a9ff6812e429661d9",
      "tree": "b0349b3a40aab5a915af491b100659a5ca9fbbf6",
      "parents": [
        "d14438f0c5071962be7fab572b54687d32d9d087"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jan 15 13:49:50 2014 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 27 18:54:52 2015 -0700"
      },
      "message": "Replace String CharArray with internal uint16_t array.\n\nSummary of high level changes:\n  - Adds compiler inliner support to identify string init methods\n  - Adds compiler support (quick \u0026 optimizing) with new invoke code path\n    that calls method off the thread pointer\n  - Adds thread entrypoints for all string init methods\n  - Adds map to verifier to log when receiver of string init has been\n    copied to other registers. used by compiler and interpreter\n\nChange-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01\n"
    },
    {
      "commit": "4554bfdc2859712a763a12e35a4176914fc7c994",
      "tree": "6ec9fde68d61fbf5e33955a54755d3e346b38bb5",
      "parents": [
        "ef2cc5a9c6e508a3e8b24d04ca35f7422f27e112"
      ],
      "author": {
        "name": "Alexei Zavjalov",
        "email": "alexei.zavjalov@intel.com",
        "time": "Wed Feb 26 17:28:35 2014 +0700"
      },
      "committer": {
        "name": "Alexei Zavjalov",
        "email": "alexei.zavjalov@intel.com",
        "time": "Thu Feb 27 00:01:00 2014 +0700"
      },
      "message": "Incorrect result of compareTo between empty and non-empty strings\n\nCurrent implementation of the Strings.compareTo() handles the case when\nempty string compares to non-empty string in the wrong way.\n\nThis patch adds handler for such cases.\n\nChange-Id: I35cc2cfd5141551d6da65748c44b59e64a3f8117\nSigned-off-by: Alexei Zavjalov \u003calexei.zavjalov@intel.com\u003e\n"
    },
    {
      "commit": "5d1ac920fdaef5d4ec8f66bb734488cd9660b024",
      "tree": "dd372f306ab70f4c86759869b1f74eca62ff6f2b",
      "parents": [
        "c31664f3d82e6cd68275a529a8a73f067a52e8be"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 29 17:41:15 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 29 17:41:15 2011 -0700"
      },
      "message": "Adding old unit tests to test suite.\n\nThese tests are copied straight over. They\u0027ll still run, but they\u0027re\nusing the old system.\n\nChange-Id: If494519e52ddf858a9febfc55bdae830468cb3c8\n"
    }
  ]
}
