)]}'
{
  "log": [
    {
      "commit": "5a0430d0239481f4efb252d60ec9641703b8d456",
      "tree": "cd7bdb45d94e7af3aa3e1bbb5958f930bcee29f6",
      "parents": [
        "b9b995738c8f53d68446d14553c1befd487877e7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 04 14:33:57 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 09 12:38:20 2019 -0800"
      },
      "message": "ART: Introduce runtime_globals\n\nSplit libartbase\u0027s globals.h into actual globals, and runtime-\ndependent globals which should live in runtime.\n\nBlanket-convert all runtime/ inclusions.\n\nIn future CLs, the number of global constants should be reduced.\nFor example, GC types are only relevant to GC/alloc functionality.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I2d8cd32e0e7ab4084d2f2e96864b5338a78da94e\n"
    },
    {
      "commit": "1979c64214bd505c013d573bc8729ee94f7bdea5",
      "tree": "9b4b2298b8b9d15cd6ca0a1e06e3771f3db2163f",
      "parents": [
        "5a87e19e4bf1b6719c2aad3effde1b38d2c3085c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 26 14:41:18 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 26 15:08:49 2018 -0700"
      },
      "message": "Clean up include paths\n\nRemove runtime/globals.h and make clients point to the right globals.h\n(libartbase/base/globals.h).  Also make within-libartbase includes\nrelative rather than using base/, etc.\n\nBug: 22322814\nTest: make -j 40 checkbuild\nChange-Id: I99de63fc851d48946ab401e2369de944419041c7\n"
    },
    {
      "commit": "103fa6ed700f4efca4ccf17eeef3fef231ceb7b5",
      "tree": "6642f46c648c795bd3f6097e9503bbdba9f9a0fe",
      "parents": [
        "f4580f43bcb74061ba8b7847ec65f2fe160f1751"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 09 17:18:05 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 14 11:40:19 2017 +0000"
      },
      "message": "ART: Destroy unprocessed tasks in TaskProcessor.\n\nIn the past I\u0027ve seen valgrind complain about leaked tasks\nin the TaskProcessor, so make sure we clean up properly.\nAlso hold the mutex and condition variable directly in the\nobject instead of allocating separate objects on the heap.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: If0d4ac39bf3d8e2aa9b465186d4fa7c3cb746718\n"
    },
    {
      "commit": "90443477f9a0061581c420775ce3b7eeae7468bc",
      "tree": "8c74b81dfae162e0fd0ccf8d5ac50827ba815174",
      "parents": [
        "6078aec213dfaf111c29969706e8e5967cfc9bea"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 16 20:32:27 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 22 15:13:56 2015 -0700"
      },
      "message": "Move to newer clang annotations\n\nAlso enable -Wthread-safety-negative.\n\nChanges:\nSwitch to capabilities and negative capabilities.\n\nFuture work:\nUse capabilities to implement uninterruptible annotations to work\nwith AssertNoThreadSuspension.\n\nBug: 20072211\n\nChange-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33\n"
    },
    {
      "commit": "3130cdf29eb203be0c38d1107a65d920ec39c106",
      "tree": "0b4093afe3f71d89b22f6ba927ad05946fb33910",
      "parents": [
        "25dcb2594a21a565ef82faa66a79bcf595c3a780"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 03 15:20:23 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 03 15:20:23 2015 -0700"
      },
      "message": "Add some more DISALLOW_COPY_AND_ASSIGN\n\nMay help prevent bugs maybe.\n\nChange-Id: Ie73d469dfcd078492ecb3aa28682b42707221202\n"
    },
    {
      "commit": "a1c9f013c034fbddb9337cc5c7ecf0e5a8b77547",
      "tree": "77a722cae515f6b3c7ea54f5b0fd2435682ae55b",
      "parents": [
        "67592a44cd5600b3c007b9215e3e5296a61118e8"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 02 10:18:12 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Apr 13 15:37:40 2015 -0700"
      },
      "message": "getRuntimeStat() support (ART).\n\nExport some runtime stats (currently GC stats) via\nVMDebug.getRuntimeStat().\n\nAdded several new GC stats such as blocking GC counts and GC count\nhistograms.\n\nBug: 19825248\nChange-Id: I8ece9ed241dc3982dfd983d7159090ba82940dce\n"
    },
    {
      "commit": "a5eae69589ff562ad66c57665882cd16f237321c",
      "tree": "b80e50c050f5d32fc7b258ef1446a245a97c3df8",
      "parents": [
        "6d1a047b4b3f9707d4ee1cc19e99717ee021ef48"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 17 17:56:03 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 19 17:08:43 2014 -0800"
      },
      "message": "Add heap task processor\n\nThe heap task processor processes async tasks which may be delayed.\nThe motivation for this change is preventing deadlocks which\ncan occur when the daemon threads get suspended by GetThreadStack.\n\nOther improvements, reduces daemon thread count by one.\nCleaner pending transition VS heap trimming logic.\n\nBug: 18739541\n\nChange-Id: Idab52b2d9661a6385cada74b93ff297ddc55fc78\n"
    }
  ]
}
