)]}'
{
  "log": [
    {
      "commit": "104883b04617a850adf11f05e57c2fd29e09c83c",
      "tree": "51d436588505a3ead506d633bdf97c9b4c934ae0",
      "parents": [
        "00e96d054e2b656d4d0f99fc141d1701af4dba23"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 09 17:12:23 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 12 15:26:21 2018 +0000"
      },
      "message": "Clean up primitive array helpers in Object.\n\nRefactor these helpers and avoid read barriers. Remove\nClass::Is{Int,Long}ArrayClass() and use the Object helpers\ninstead.\n\nRemove the AsByteSizedArray() and AsShortSizedArray()\nhelpers that essentially break the type system and rewrite\ntheir users, adding appropriate notes. {Float,Double}Array\nuses in Unsafe would have previously failed a DCHECK().\n\nTest: Additional test in 004-UnsafeTest.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I88b7e3df7de883f64cfc5eb437a40646f2884685\n"
    },
    {
      "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": "0795f23920ee9aabf28e45c63cd592dcccf00216",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:43:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 29 17:31:09 2016 -0700"
      },
      "message": "Clean up ScopedThreadStateChange to use ObjPtr\n\nAlso fixed inclusion of -inl.h files in .h files by adding\nscoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h\n\nChanged AddLocalReference / Decode to use ObjPtr.\n\nChanged libartbenchmark to be debug to avoid linkage errors.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4d2e160483a29d21e1e0e440585ed328b9811483\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": "3d31242300c3525e5c85665d9e34acf87002db63",
      "tree": "c7f66d95fa3d65241a1c9f10381c1e0ec0989a4e",
      "parents": [
        "bfea33585e229973f7887afbf51fe45c2ba41e91"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jun 23 13:53:42 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jun 23 14:05:17 2016 +0100"
      },
      "message": "Re-enable most intrinsics with read barriers.\n\nAlso extend sun.misc.Unsafe test coverage to exercise\nsun.misc.Unsafe.{get,put}{Int,Long,Object}Volatile.\n\nBug: 26205973\nBug: 29516905\nChange-Id: I4d8da7cee5c8a310c8825c1631f71e5cb2b80b30\nTest: Covered by ART\u0027s run-tests.\n"
    },
    {
      "commit": "0e54c0160c84894696c05af6cad9eae3690f9496",
      "tree": "fc0915613a2f3ce67d13013997049da71afe8e2a",
      "parents": [
        "35e0cbce516db91aaa77bfc39f797d9848a091c0"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Mar 04 12:08:31 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Mar 07 14:27:58 2016 -0800"
      },
      "message": "Unsafe: Recognize intrinsics for 1.8 java.util.concurrent\nWith unit test.\n\nRationale:\nRecognizing the 1.8 methods as intrinsics is the first step\ntowards providing efficient implementation on all architectures.\nWhere not implemented (everywhere for now), the methods fall back\nto the JNI native or reference implementation.\n\nNOTE: needs iam\u0027s CL first!\n\nbug\u003d26264765\n\nChange-Id: Ife65e81689821a16cbcdd2bb2d35641c6de6aeb6\n"
    },
    {
      "commit": "2e50ecb95ddf645595491438cf35e79b705ee366",
      "tree": "9c526b4d7496ef4b94fef5fda08a34b612e641c8",
      "parents": [
        "902838d865eaed9fa4df6414c706e5f6787d02ea"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 27 14:08:33 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 27 14:11:12 2016 +0000"
      },
      "message": "Fix ARM \u0026 ARM64 UnsafeCASObject intrinsic with heap poisoning.\n\nEnsure aliasing does not make us poison/unpoison the same\nvalue twice.\n\nAlso extend testing of Unsafe.compareAndSwap* routines.\n\nBug: 26204023\nBug: 12687968\nChange-Id: I29d7e5dd2a969845e054798f77837d20e3c18483\n"
    },
    {
      "commit": "b488b7864b7bf9cade82d45c8bdda2372f48a10c",
      "tree": "84b273034863075fbac2fbe0bd4d64fad95728e3",
      "parents": [
        "534a9b68ec5e8dda8f6e0a07bf0fdbaeb0cedbfe"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 22 11:38:49 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 22 11:38:49 2015 +0100"
      },
      "message": "Fix heap poisoning in UnsafeCASObject x86/x86-64 intrinsic.\n\nProperly handle the case when the same object is passed to\nsun.misc.Unsafe.compareAndSwapObject for the `obj` and\n`newValue` arguments (named `base` and `value` in the\nintrinsic implementation) and re-enable this intrinsic.\n\nAlso convert some reinterpret_casts to down_casts.\n\nBug: 12687968\nChange-Id: I82167cfa77840ae2cdb45b9f19f5f530858fe7e8\n"
    },
    {
      "commit": "598302ac91fd3e990f50e1aa530c3ad61d6d946e",
      "tree": "e348ed768ad36e70c920114d1b7fe7b5b4d24a57",
      "parents": [
        "a00bd9395be31bd69a0558b78a48e4279a6ce693"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 23 14:52:39 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 11:05:00 2015 -0700"
      },
      "message": "Call JNI_OnUnload when class loaders get collected\n\nAdded test case to 141-class-unload.\n\nBug: 22720414\nChange-Id: I0575fae72521520a17587e8b0088bf8112705ad8\n"
    },
    {
      "commit": "031768a340634e2dbdec1aebb2bb3fe509b2f1f6",
      "tree": "dcc51b140b69e90f60045d846f4c890bd322e1ad",
      "parents": [
        "dfb5f9ceb277f30ee961b27e72d968e0695611a6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 10:25:02 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 15:16:30 2015 -0700"
      },
      "message": "Add non debug version of libarttest\n\nWe now pass the libarttest as an argument to the java program. This\nenables using libarttestd by default and libarttest when -O is\nspecified.\n\nChange-Id: I0de1ae01e2bb5f7b9c7fd7487b6cb55051f60657\n"
    },
    {
      "commit": "b550c2e42fe5d30c7ebc196fc705aa18a191ffab",
      "tree": "5950ceacc9a06a5ae3f517faa67913b1b5ad6fb9",
      "parents": [
        "2f81cd8f4ff21caf133024795bd5ae028c9f68cd"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 26 10:44:53 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 26 10:46:56 2015 +0100"
      },
      "message": "Exercise sun.misc.Unsafe.compareAndSwapObject.\n\nChange-Id: I25aad20be3363aace5189a8134f3484f8675c701\n"
    },
    {
      "commit": "ca1476ff428edc29d258a5e693d894b0f7a0f7b7",
      "tree": "4dd5533c8d5940c004d971a4c11675fc1a6caaf0",
      "parents": [
        "8d86843064912299b71191eabe65ce16fa7f3099"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 16 18:09:26 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 16 18:10:57 2015 +0100"
      },
      "message": "Exercise sun.misc.Unsafe.getObject.\n\nChange-Id: I6b3c090e1db7302d6f5b81ab91d5a1dc218fae93\n"
    },
    {
      "commit": "e401d146407d61eeb99f8d6176b2ac13c4df1e33",
      "tree": "17927f9bfe7d2041b5942c89832d55f9dedb24c5",
      "parents": [
        "2006b7b9b8e32722bd0d640c62549d8a0ac624b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 13:56:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 29 18:45:49 2015 -0700"
      },
      "message": "Move mirror::ArtMethod to native\n\nOptimizing + quick tests are passing, devices boot.\n\nTODO: Test and fix bugs in mips64.\n\nSaves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.\nSome of the savings are from removal of virtual methods and direct\nmethods object arrays.\n\nBug: 19264997\nChange-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d\n"
    },
    {
      "commit": "58d25fd052e999a24734b0cf856a1563e3d1b2d0",
      "tree": "b1dbeae13a24e3f7ec325698a3724b5d90df2ef9",
      "parents": [
        "1b8e8cac2c96f6d2af8e7217f997a30e11c098b5"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 03 14:52:31 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Apr 06 23:05:13 2015 -0400"
      },
      "message": "[optimizing] Implement more x86/x86_64 intrinsics\n\nImplement CAS and bit reverse and byte reverse intrinsics that were\nmissing from x86 and x86_64 implementations.\n\nAdd assembler tests and compareAndSwapLong test.\n\nChange-Id: Iabb2ff46036645df0a91f640288ef06090a64ee3\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "2bcf9bf784a0021630d8fe63d7230d46d6891780",
      "tree": "167d773b796c5e63d84c205a8ae9a2fe3585d06a",
      "parents": [
        "61fdf5bca503c30ba1e4dcaf333a8d3299f3bde6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 29 09:56:07 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 09 13:08:39 2015 -0800"
      },
      "message": "ART: Arm intrinsics for Optimizing compiler\n\nAdd arm32 intrinsics to the optimizing compiler.\n\nChange-Id: If4aeedbf560862074d8ee08ca4484b666d6b9bf0\n"
    },
    {
      "commit": "da4442e52abcce85b606e5651a014f80d4995bb0",
      "tree": "ae0dea9e85e0c8ef8182904aea4599ddaa119009",
      "parents": [
        "b13d4c592c187c54d6870b1d46601f3c00783fc7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 14 15:39:01 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 14 16:06:34 2014 -0700"
      },
      "message": "Use exit(1), not exit(-1)\n\nChange-Id: If59f988ee8b37f6f87363fe8ea8edfde738f3397\n"
    },
    {
      "commit": "1c83cbc4a817acbd7f9abb5b29a2d418a958e6a1",
      "tree": "aae7ea1d5559718d6e264175aa1cb2ae1fc1e9ed",
      "parents": [
        "7dfc30b591aee167f0a38ab61a90894cc76f2066"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 22 18:52:29 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 23 10:03:00 2014 -0700"
      },
      "message": "ART: Make run tests out of oat tests\n\nTransforms all former oat tests into run tests.\n\nChange-Id: I190dd39456454c36e5538a2c044d993965a67533\n"
    }
  ]
}
