)]}'
{
  "log": [
    {
      "commit": "c645f1ddb7c40bea6a38eda4b3f83f6b6dec405b",
      "tree": "de6141864c1c011216c19dd99a2c1e2bc442dd6d",
      "parents": [
        "a9d7be62735e3356cef7e8ed797c519134a17061"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 18:11:53 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 12:09:04 2014 -0800"
      },
      "message": "Add more VerifyObject calls.\n\nAdded verify object calls to SirtRef, IndirectReferenceTable,\nReferenceTable.\n\nRemoved un-needed verify object in ScopedObjectAccess / DecodeJObject\nsince object sources are handled.\n\nBug: 12934910\nChange-Id: I55a46a8ea61fed2a77526eda27fd2cce97a9b125\n"
    },
    {
      "commit": "815873ecc312b1d231acce71e1a16f42cdaf09f2",
      "tree": "18ba2fa951775e60b240271bfe975e6e2cfc654c",
      "parents": [
        "2befd09cf4fe89a18a655f3e1dd310831bfa769f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 13 18:02:13 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 18 10:45:12 2014 -0800"
      },
      "message": "Change root visitor to use Object**.\n\nSimplifies code and improves the performance of root visiting since\nwe usually don\u0027t need to check to see if the object moved.\n\nChange-Id: Iba998f5a15ae1fa1b53ca5226dd2168a411196cf\n"
    },
    {
      "commit": "83c8ee000d525017ead8753fce6bc1020249b96a",
      "tree": "d5167ed15dee2629905ac3640b6ea0578d4ae312",
      "parents": [
        "7cba217ab0661d74deccbb97160cdf60b74d4ea3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 28 14:50:23 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 11 10:40:10 2014 -0800"
      },
      "message": "Add root types and thread id to root visiting.\n\nEnables us to pass the root type and thread id to hprof.\n\nBug: 12680863\nChange-Id: I6a0f1f9e3aa8f9b4033d695818ae7ca3460d67cb\n"
    },
    {
      "commit": "ef7d42fca18c16fbaf103822ad16f23246e2905d",
      "tree": "c67eea52a349c2ea7f2c3bdda8e73933c05531a8",
      "parents": [
        "822115a225185d2896607eb08d70ce5c7099adef"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 06 12:55:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 06 23:20:27 2014 -0800"
      },
      "message": "Object model changes to support 64bit.\n\nModify mirror objects so that references between them use an ObjectReference\nvalue type rather than an Object* so that functionality to compress larger\nreferences can be captured in the ObjectRefererence implementation.\nObjectReferences are 32bit and all other aspects of object layout remain as\nthey are currently.\n\nExpand fields in objects holding pointers so they can hold 64bit pointers. Its\nexpected the size of these will come down by improving where we hold compiler\nmeta-data.\nStub out x86_64 architecture specific runtime implementation.\nModify OutputStream so that reads and writes are of unsigned quantities.\nMake the use of portable or quick code more explicit.\nTemplatize AtomicInteger to support more than just int32_t as a type.\nAdd missing, and fix issues relating to, missing annotalysis information on the\nmutator lock.\nRefactor and share implementations for array copy between System and uses\nelsewhere in the runtime.\nFix numerous 64bit build issues.\n\nChange-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822\n"
    },
    {
      "commit": "590fee9e8972f872301c2d16a575d579ee564bee",
      "tree": "b02db45c72f1911ec896b93379ada0276aea3199",
      "parents": [
        "5b70680b8df6d8fa95bb8e1070d0107f3d388940"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 13 13:46:47 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 11 15:34:27 2013 -0800"
      },
      "message": "Compacting collector.\n\nThe compacting collector is currently similar to semispace. It works by\ncopying objects back and forth between two bump pointer spaces. There\nare types of objects which are \"non-movable\" due to current runtime\nlimitations. These are Classes, Methods, and Fields.\n\nBump pointer spaces are a new type of continuous alloc space which have\nno lock in the allocation code path. When you allocate from these it uses\natomic operations to increase an index. Traversing the objects in the bump\npointer space relies on Object::SizeOf matching the allocated size exactly.\n\nRuntime changes:\nJNI::GetArrayElements returns copies objects if you attempt to get the\nbacking data of a movable array. For GetArrayElementsCritical, we return\ndirect backing storage for any types of arrays, but temporarily disable\nthe GC until the critical region is completed.\n\nAdded a new runtime call called VisitObjects, this is used in place of\nthe old pattern which was flushing the allocation stack and walking\nthe bitmaps.\n\nChanged image writer to be compaction safe and use object monitor word\nfor forwarding addresses.\n\nAdded a bunch of added SIRTs to ClassLinker, MethodLinker, etc..\n\nTODO: Enable switching allocators, compacting on background, etc..\n\nBug: 8981901\n\nChange-Id: I3c886fd322a6eef2b99388d19a765042ec26ab99\n"
    },
    {
      "commit": "423d2a3dcbb260b020efb5da59f784c9f02accbf",
      "tree": "79ed739e6072f8308c1cd880f9420a1c63539c95",
      "parents": [
        "b048dd2b662c19644361f4396a1e8d6213445ee8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 12 17:33:56 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 13 10:30:24 2013 -0700"
      },
      "message": "Add support for changing roots through the root visitor callback.\n\nNeeded for copying collectors.\n\nChange-Id: Icc4a342a57e0cfb79587edb02ef8c85e08808877\n"
    },
    {
      "commit": "02e25119b15a6f619f17db99f5d05124a5807ff3",
      "tree": "7be4cbbf28033e5ee0621565b410fe5d8170a8fb",
      "parents": [
        "7d70a7932f0ba09eb01a93caab060aef1403d4e6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 14 16:14:24 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 16 13:15:37 2013 -0700"
      },
      "message": "Fix up TODO: c++0x, update cpplint.\n\nNeeded to update cpplint to handle const auto.\n\nFixed a few cpplint errors that were being missed before.\n\nReplaced most of the TODO c++0x with ranged based loops. Loops which\ndo not have a descriptive container name have a concrete type instead\nof auto.\n\nChange-Id: Id7cc0f27030f56057c544e94277300b3f298c9c5\n"
    },
    {
      "commit": "7934ac288acfb2552bb0b06ec1f61e5820d924a4",
      "tree": "43f3acd8af7fd34d4ae7b64f6e06bb8429d74bb8",
      "parents": [
        "fb331d7ca004f39608fcfdae49d38df90c702ea9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 10:54:15 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 11:55:10 2013 -0700"
      },
      "message": "Fix cpplint whitespace/comments issues\n\nChange-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496\n"
    },
    {
      "commit": "7940e44f4517de5e2634a7e07d58d0fb26160513",
      "tree": "ac90242d96229a6942f6e24ab137bc1f8f2e0025",
      "parents": [
        "5cd9e3b122f276f610980cbaf0d2ad6ed4cd9088"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 13:46:57 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 17:49:01 2013 -0700"
      },
      "message": "Create separate Android.mk for main build targets\n\nThe runtime, compiler, dex2oat, and oatdump now are in seperate trees\nto prevent dependency creep.  They can now be individually built\nwithout rebuilding the rest of the art projects. dalvikvm and jdwpspy\nwere already this way. Builds in the art directory should behave as\nbefore, building everything including tests.\n\nChange-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81\n"
    },
    {
      "commit": "2dd0e2cea360bc9206eb88ecc40d259e796c239d",
      "tree": "9d619dc9508cbe73e4793bf6f08cbc761abfb48a",
      "parents": [
        "ac21b797b3a425975d656d6b84a7b24401d35f42"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 24 12:42:14 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jan 30 16:48:31 2013 -0800"
      },
      "message": "Directory restructuring of object.h\n\nBreak object.h into constituent files.\nReduce number of #includes in other GC header files.\nIntroduce -inl.h files to avoid mirror files #include-ing each other.\nCheck invariants of verifier RegTypes for all constructors.\n\nChange-Id: Iecf1171c02910ac152d52947330ef456df4043bc\n"
    },
    {
      "commit": "76b6167407c2b6f5d40ad895b2793a6b037f54b2",
      "tree": "5c433a0907ddf401f4078b6703253b1ae75e723e",
      "parents": [
        "f66330a747eff155eb571b634fc9d901c55a78a7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 17:47:30 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 18:11:44 2012 -0800"
      },
      "message": "Move mutex.h into base/mutex.h.\n\nWe don\u0027t actually need any hackery to get the right mutex.h any\nmore, but since we planned on having the google3-like stuff\nin google3-like locations, this is an easy one to fix.\n\nChange-Id: Ie27464ebbc208a6f4e694a97cf26b1cee0737009\n"
    },
    {
      "commit": "81d425b0b232962441616f8b14f73620bffef5e5",
      "tree": "cd1e46656269acf20e78817d675e56d9b9133e6c",
      "parents": [
        "bfaf917edbb1de8d158c3615e0da8ac3143d10c8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 27 16:03:43 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 27 17:19:25 2012 -0700"
      },
      "message": "Pass self to lock methods.\n\nThis avoids frequent recomputation of\nThread::Current/pthread_getspecific.\n\nAlso add a futex based reader/writer mutex that is disabled.\n\nChange-Id: I118fdb99ef1d1c4bfda6446ba3a0d8b6ab31eaee\n"
    },
    {
      "commit": "b726dcb581bf72da46527378ccb6889020f0e6e9",
      "tree": "c0383ed788652926e93147e50d659ed226519548",
      "parents": [
        "fd678beb171a4686a4f2d53ca4188a4ade8fa54e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 05 08:57:23 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 05 09:06:19 2012 -0700"
      },
      "message": "Rename GlobalSynchronization to Locks\n\nAlso address some review comments in common_throws relating to\nToStr\u003cInvokeType\u003e and exception detail messages.\n\nChange-Id: Ibf2c0f147689fa236d349bd7f01eed3c2522552b\n"
    },
    {
      "commit": "00f7d0eaa6bd93d33bf0c1429bf4ba0b3f28abac",
      "tree": "6a2172ece15c4699e6c2a67ce76f019db0a9a21d",
      "parents": [
        "634ea28f78c4a138e6a1de54eae8696095422415"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 19 15:28:27 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 10:45:52 2012 -0700"
      },
      "message": "Global lock levels.\n\nIntroduce the notion of the mutators/GC being a shared-exclusive (aka\nreader-writer) lock. Introduce globally ordered locks, analysable by\nannotalysis, statically at compile time. Add locking attributes to\nmethods.\n\nMore subtly, remove the heap_lock_ and split between various locks that\nare held for smaller periods (where work doesn\u0027t get blocked). Remove\nbuggy Dalvik style thread transitions. Make GC use CMS in all cases when\nconcurrent is enabled. Fix bug where suspend counts rather than debug\nsuspend counts were sent to JDWP. Move the PathClassLoader to\nWellKnownClasses. In debugger refactor calls to send request and\npossibly suspend. Break apart different VmWait thread states. Move\nidentity hash code to a shared method.\n\nChange-Id: Icdbfc3ce3fcccd14341860ac7305d8e97b51f5c6\n"
    },
    {
      "commit": "73e66f73f5093b64f2b023ebbb85916a13d5c937",
      "tree": "fca2dcdf446aec9aad2a3096098c038279279e53",
      "parents": [
        "145d491d1a30b291eb3ea608507a04451237f327"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 09:34:45 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 09:34:45 2012 -0700"
      },
      "message": "Tidy up and finish reference table dumping.\n\nChange-Id: I9f0d214e27a75d373e3144b738f1e3da51bbc0ca\n"
    },
    {
      "commit": "ba8eee10607a524f43b55a6f33c13924fb16d435",
      "tree": "45f3c3728bcaee9ff04baeaf1706693e677757bf",
      "parents": [
        "844f9a072454eb9dca1022299b6bf99ef4294008"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "message": "Remove more lint.\n\nChange-Id: I48714db4169d9ea0536342809361210910ee2091\n"
    },
    {
      "commit": "215f3144be114ac27002059330d903bf1ff5a592",
      "tree": "a1d274b36e26ddc922a6533bfc9ed2bcc3ce9db5",
      "parents": [
        "e65a6c99b0fd8908484b61c3c8f5a43cf0081f3c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 19 00:22:47 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 19 00:22:47 2012 -0800"
      },
      "message": "Even more Mac build fixes.\n\nThe stack one is a punt until I\u0027ve got an actual machine to test on.\n\nChange-Id: Ibb2132511f4c9f50f1f21651ca9ba7d5bed67e09\n"
    },
    {
      "commit": "bb1e8f0a07c12a8b0a2dd3cab6a1a7e825a54c6f",
      "tree": "b2c5d6d1765a6a4de8c3f90c32d78b424f870635",
      "parents": [
        "362f9bc807169bcfc8761dde067bbfb79b5ad0fd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 18 14:14:25 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 18 14:14:25 2011 -0700"
      },
      "message": "Implement -Xjnigreflimit.\n\nChange-Id: Iaa31cf4ea4f90fc76baa4472b67fe6c2cc0e0277\n"
    },
    {
      "commit": "54e7df1896a4066cbb9fe6f72249829f0b8c49c6",
      "tree": "c7889163c116637001c98270f897d41ca02ce8a5",
      "parents": [
        "a0a764a1f5757f0f7ffa695b855b9d0ac8c2e455"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 11:47:04 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 11:47:04 2011 -0700"
      },
      "message": "Various bits of cleanup.\n\nMost notable: PrettyField now includes the type (but, like PrettyMethod,\nlets you turn this off), and there\u0027s a new PrettyClass, and PrettyType\nhas been renamed to PrettyTypeOf.\n\nI\u0027ve also moved the dalvik \"sync\" stuff into files named \"monitor\", and\nmade some of the implementation details private.\n\nChange-Id: I39ea79b45e173f9ebbf9878bcead207766a5653f\n"
    },
    {
      "commit": "410c0c876f326e14c176a39ba21fc4dd3f7db8ab",
      "tree": "e4b77ac5ed99b7206c51f6519689fdbc623e843d",
      "parents": [
        "1b4c85959b3d9a4a33bc2160c46c1bbde67350c7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 17:58:25 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 22:16:18 2011 -0700"
      },
      "message": "Mark more roots.\n\nThis is most of the stuff. (Everything that currently exists, though there\u0027s\nmore to come.)\n\nChange-Id: I235a21b006820a027c494374a5b52ffefed89c32\n"
    },
    {
      "commit": "b63ec393a5c4ba2be1d34dd871cda811eaa803c7",
      "tree": "098aaab4ad09569ea18a452f13eba2cf6acff837",
      "parents": [
        "439c4fa0db980fb19e4a585723a64a3461e4c278"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Aug 27 17:38:27 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 28 12:00:56 2011 -0700"
      },
      "message": "Add compiler allocation paths Class::NewInstanceFromCode and Array::AllocFromCode\n\nChange-Id: I604377656f182f29692cda757dc7fdb4acc938b9\n"
    },
    {
      "commit": "c1674ed06662420213441ff2b818f2f71f9098dc",
      "tree": "2799982a5059feab2a680ce5d91c276e5852983c",
      "parents": [
        "bafc342a37e423a19ac05f14800006ea9d67a941"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 25 18:09:09 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 25 18:48:47 2011 -0700"
      },
      "message": "Make valgrind happier and stop us leaking so much we can can\u0027t run the tests on a device.\n\nChange-Id: Id8f45dde788fd84c10b0b5807b2d12eae529ba5e\n"
    },
    {
      "commit": "7577075b147fd8fa37ca41e7a32d1124676776ce",
      "tree": "f140e662b61200fe3ee4ba86c1fc05e9f4a96791",
      "parents": [
        "b465ab0e103d7760df903c1fddf4fa6b89d5d1f5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 24 17:52:38 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 24 17:52:38 2011 -0700"
      },
      "message": "Finish off the new JNI implementation.\n\nThere are a handful of remaining TODOs, but this gives us complete coverage.\n\nChange-Id: Ibee38e6a87a0fcfae769d991125b0551243c8eeb\n"
    },
    {
      "commit": "6c1a394b47c85c8d1723fc3b156a3b1b0b29a757",
      "tree": "122185299351264d8e86db2399bbf8aef2a09e97",
      "parents": [
        "0db8cf440970b36d9511f20984150c06e504ab19"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 17 15:00:06 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 17 15:20:34 2011 -0700"
      },
      "message": "Add IndirectReferenceTable and initialize all the instances.\n\nWe\u0027re not _using_ any of the tables yet (except in tests), but all the\nreference tables are now in place.\n\nChange-Id: Ifd3fc114254460b4a1302520f2a4653319b113e5\n"
    },
    {
      "commit": "5b1982d2b41ab7a664fb04117539f29eadafa773",
      "tree": "c4c347fce75552a63269c6dbd979432b34a4e7be",
      "parents": [
        "b3c5ea6d937900651d6d0f8106fbd166256a59cb"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Aug 16 18:35:19 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Aug 16 18:35:19 2011 -0700"
      },
      "message": "Get rid of some C artifacts as noted in the initial review.\n\nChange-Id: If476df8bbd0505157fce938777d3ee17d6da5c98\n"
    },
    {
      "commit": "11e45077acba2e757799a00b3be9d63fec36a7cc",
      "tree": "3538d83b1bdb862d657a93aa894ad74fc6ec9c68",
      "parents": [
        "e2ff782c0cf770c3f72916ba9072bc24bf732ce0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 17:40:46 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 18:00:12 2011 -0700"
      },
      "message": "Add a reference table implementation.\n\nThis is suitable for pinned array references and the like.\n\nI\u0027ve also brought in some of the human-readable type printing stuff\nfor the benefit of the reference table dumping code.\n\nThis patch includes tests, but doesn\u0027t yet wire anything up.\n\nChange-Id: Iaf6066201bbd254e033dee4fd0b8dfd0bc17afa9\n"
    }
  ]
}
