)]}'
{
  "log": [
    {
      "commit": "177bbca2742f558ce3ef3de85b7356100104b5b4",
      "tree": "86fd5de4cbfa6078bee7aee97d7c8c2f8022c001",
      "parents": [
        "8d54d1de1a81e3e2a1627f08883990303504a4bb",
        "5c24bb9ed461ff5013b78e279e5bb09570c2a93f"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Thu Nov 09 09:29:40 2017 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 09 09:29:40 2017 -0800"
      },
      "message": "Merge pull request #197 from ddunbar/rdar35403456\n\n[BuildSystem] Fix symlink output value if the output is ever missing."
    },
    {
      "commit": "5c24bb9ed461ff5013b78e279e5bb09570c2a93f",
      "tree": "86fd5de4cbfa6078bee7aee97d7c8c2f8022c001",
      "parents": [
        "8d54d1de1a81e3e2a1627f08883990303504a4bb"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed Nov 08 16:49:48 2017 -0800"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed Nov 08 16:50:40 2017 -0800"
      },
      "message": "[BuildSystem] Fix symlink output value if the output is ever missing.\n\n - This shouldn\u0027t normally be possible, since the command would have failed, but\n   it can happen in corner cases when trying to use a simulated filesystem.\n\n - \u003crdar://problem/35403456\u003e Crash in llbuild::buildsystem::BuildValue::makeExistingInput()\n"
    },
    {
      "commit": "8d54d1de1a81e3e2a1627f08883990303504a4bb",
      "tree": "5d4b4f660c25092a221e5a19dd50c1a98482fd82",
      "parents": [
        "21054661ff04c31760c5b21f4fc338440e472ccf",
        "ac6e9f3d43fa5a0637dac5b4b4b0112d949f2637"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Tue Nov 07 06:26:24 2017 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 07 06:26:24 2017 -0800"
      },
      "message": "Merge pull request #196 from ddunbar/rdar35319783\n\n[BuildSystem] Don\u0027t propagate cancel state through phony commands."
    },
    {
      "commit": "ac6e9f3d43fa5a0637dac5b4b4b0112d949f2637",
      "tree": "5d4b4f660c25092a221e5a19dd50c1a98482fd82",
      "parents": [
        "21054661ff04c31760c5b21f4fc338440e472ccf"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Mon Nov 06 20:04:29 2017 -0800"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Mon Nov 06 20:04:29 2017 -0800"
      },
      "message": "[BuildSystem] Don\u0027t propagate cancel state through phony commands.\n\n - When using phony commands to enforce ordering constraints, the cancelled\n   state would incorrectly propagate through the phony command, thus causing\n   unnecessary rebuilds of all downstream tasks. Instead, we\n\n - A more fundamental solution to this problem will be to adopt support for\n   engine cancellation, and to ultimately allow individual commands to fail\n   without reporting a result value (and then triggering engine termination).\n\n - \u003crdar://problem/35319783\u003e Unnecessary rebuilds after an error\n"
    },
    {
      "commit": "21054661ff04c31760c5b21f4fc338440e472ccf",
      "tree": "cbbcd17b123a458ee0fecfdcf1463f858ce0f65d",
      "parents": [
        "fe9b76abd29a063d20daeb4669aa1ae6a0962f90",
        "c6d77260592f075953be86449c96e6b6c86b731e"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Mon Nov 06 08:17:53 2017 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 06 08:17:53 2017 -0800"
      },
      "message": "Merge pull request #194 from ddunbar/core-cancellation-is-incomplete\n\n[Core] Fix a corner case in cancellation logic."
    },
    {
      "commit": "c6d77260592f075953be86449c96e6b6c86b731e",
      "tree": "cbbcd17b123a458ee0fecfdcf1463f858ce0f65d",
      "parents": [
        "fe9b76abd29a063d20daeb4669aa1ae6a0962f90"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Sun Nov 05 15:25:47 2017 -0800"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Sun Nov 05 16:37:41 2017 -0800"
      },
      "message": "[Core] Fix a corner case in cancellation logic.\n\n - Cancellation was marking tasks as complete, which could result in subsequent\n   builds failing to update them.\n\n - This basically never actually happens in practice, since that write only\n   effected the in-memory representation not what was persisted in the database,\n   and most significant clients do not yet rely on the in-memory representation.\n"
    },
    {
      "commit": "fe9b76abd29a063d20daeb4669aa1ae6a0962f90",
      "tree": "2bbc1eb72d6f098da719b3e3fffd16eb3c613532",
      "parents": [
        "c9f7a622db5026e9c690878b58c1e54af8fc130c",
        "b40008f51844d44b59d6a1685654c5096df3b9b2"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Sun Nov 05 16:36:56 2017 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 05 16:36:56 2017 -0800"
      },
      "message": "Merge pull request #193 from ddunbar/core-wait-for-tasks-on-cancellation\n\n[Core] Fix a race condition in task cancellation."
    },
    {
      "commit": "b40008f51844d44b59d6a1685654c5096df3b9b2",
      "tree": "2bbc1eb72d6f098da719b3e3fffd16eb3c613532",
      "parents": [
        "c9f7a622db5026e9c690878b58c1e54af8fc130c"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Sun Nov 05 15:21:22 2017 -0800"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Sun Nov 05 15:22:26 2017 -0800"
      },
      "message": "[Core] Fix a race condition in task cancellation.\n\n - This also renames the cancellation method to be more obvious about\n   when it is used.\n\n - When task cancellation was done as part of an error handling path,\n   there was a potential race with any outstanding work being completed.\n   We solve this by forcing (engine-level) cancellation to wait for any\n   outstanding work before completing (to avoid needing to introduce\n   any additional synchronization logic).\n\n - This is currently very improbable, since errors aren’t ever expected,\n   but that will change once we expose engine cancellation to clients.\n"
    },
    {
      "commit": "c9f7a622db5026e9c690878b58c1e54af8fc130c",
      "tree": "09ad2f49c898875ea19de6e0fa9bba431fec70b8",
      "parents": [
        "c9249a7c6ab552eebe9fa93239d7be59ba93d7d7",
        "4a54f51e052df35f10c372cc72fb7f422fb2dece"
      ],
      "author": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Wed Nov 01 20:25:17 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 01 20:25:17 2017 -0700"
      },
      "message": "Merge pull request #192 from ddunbar/rdar35299761\n\n[Xcode] Add GTEST_NO_LLVM_RAW_OSTREAM declarations for Xcode project."
    },
    {
      "commit": "4a54f51e052df35f10c372cc72fb7f422fb2dece",
      "tree": "09ad2f49c898875ea19de6e0fa9bba431fec70b8",
      "parents": [
        "c9249a7c6ab552eebe9fa93239d7be59ba93d7d7"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed Nov 01 16:15:37 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed Nov 01 16:16:04 2017 -0700"
      },
      "message": "[Xcode] Add GTEST_NO_LLVM_RAW_OSTREAM declarations for Xcode project.\n\n - \u003crdar://problem/35299761\u003e 2 errors in raw_os_ostream.h:33\n"
    },
    {
      "commit": "c9249a7c6ab552eebe9fa93239d7be59ba93d7d7",
      "tree": "ccd6a94062b4a1b1e81f78adc79f59d4432f40b1",
      "parents": [
        "5ab187165af58946b4d52e2d72128ade850d5c43",
        "f0890754a88440b9ad247fe9b1366588fb0d8790"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Tue Oct 31 21:59:56 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 31 21:59:56 2017 -0700"
      },
      "message": "Merge pull request #191 from ddunbar/rdar35210645\n\n[gtest] Sync with LLVM\u0027s current gtest."
    },
    {
      "commit": "f0890754a88440b9ad247fe9b1366588fb0d8790",
      "tree": "ccd6a94062b4a1b1e81f78adc79f59d4432f40b1",
      "parents": [
        "5ab187165af58946b4d52e2d72128ade850d5c43"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Fri Oct 27 15:00:43 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Fri Oct 27 15:01:28 2017 -0700"
      },
      "message": "[gtest] Sync with LLVM\u0027s current gtest.\n\n - In particular, this fixes some warnings seen when using a more modern Clang.\n \n - \u003crdar://problem/35210645\u003e 16 warnings in llbuild/utils/unittest/googletest files\n"
    },
    {
      "commit": "5ab187165af58946b4d52e2d72128ade850d5c43",
      "tree": "80c7a1e57a4118767da4560bcfa7120f6bd18d33",
      "parents": [
        "5ccd43a30eb6e1c9f2a73dfb9e1f9a30b2e7f9fc",
        "fad44ef7c30c3eeeaf4a4d593cd092ff225f1e79"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Thu Oct 26 16:29:10 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 26 16:29:10 2017 -0700"
      },
      "message": "Merge pull request #190 from ddunbar/rdar35179142\n\nExport LLBUILD_TASK_ID to subprocesses."
    },
    {
      "commit": "fad44ef7c30c3eeeaf4a4d593cd092ff225f1e79",
      "tree": "80c7a1e57a4118767da4560bcfa7120f6bd18d33",
      "parents": [
        "6aecdff5e5ebdad10dabd99d2ae9302739bfbab1"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu Oct 26 12:22:02 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu Oct 26 12:22:02 2017 -0700"
      },
      "message": "[BuildSystem] Export LLBUILD_TASK_ID to subprocesses.\n\n - This will eventually be used to propagate a unique ID which subprocesses can\n   use for reassociation, but for now it is just the lane ID to use for tracing\n   purposes.\n\n - \u003crdar://problem/35179142\u003e Pass LLBUILD_TASK_ID environment variable to Clang for tracing purposes\n"
    },
    {
      "commit": "6aecdff5e5ebdad10dabd99d2ae9302739bfbab1",
      "tree": "6e32e82c4cd5f0da5405b78982750d0ee1717e16",
      "parents": [
        "5ccd43a30eb6e1c9f2a73dfb9e1f9a30b2e7f9fc"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu Oct 26 12:07:33 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu Oct 26 12:07:33 2017 -0700"
      },
      "message": "[BuildSystem] Factor out POSIX environment helper.\n\n - This just encapsulates the work required to construct a POSIX-style `envp`.\n"
    },
    {
      "commit": "5ccd43a30eb6e1c9f2a73dfb9e1f9a30b2e7f9fc",
      "tree": "4b1289acd4f06db489e71551c28537236cdeba99",
      "parents": [
        "d868de9a6e4592c66f953aa7103e9465078e41b3",
        "e7b59da547ec15acb9eb5c36394cce67d8df0e94"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Thu Sep 28 19:42:44 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 28 19:42:44 2017 -0700"
      },
      "message": "Merge pull request #188 from ddunbar/64bit-tracing-apis\n\n[Basic] Adjust tracing APIs to accept 64-bit values."
    },
    {
      "commit": "e7b59da547ec15acb9eb5c36394cce67d8df0e94",
      "tree": "4b1289acd4f06db489e71551c28537236cdeba99",
      "parents": [
        "d868de9a6e4592c66f953aa7103e9465078e41b3"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu Sep 28 13:20:23 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu Sep 28 13:20:23 2017 -0700"
      },
      "message": "[Basic] Adjust tracing APIs to accept 64-bit values.\n"
    },
    {
      "commit": "d868de9a6e4592c66f953aa7103e9465078e41b3",
      "tree": "4d6196094100549c5a0093a244b330230d6c57b9",
      "parents": [
        "1370ca71339b0c2a01d660834f83f22c94845633",
        "a4271415bd45edf558be0f6f42536142a100e80a"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Tue Sep 26 22:32:17 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 26 22:32:17 2017 -0700"
      },
      "message": "Merge pull request #187 from ddunbar/basic-tracing-support\n\nBasic tracing support"
    },
    {
      "commit": "a4271415bd45edf558be0f6f42536142a100e80a",
      "tree": "4d6196094100549c5a0093a244b330230d6c57b9",
      "parents": [
        "fd6edacf9674a894f1d36a812950a083eff7be44"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Mon Sep 25 16:47:39 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Tue Sep 26 21:35:24 2017 -0700"
      },
      "message": "[Core] Add some limited tracing support.\n\n - This isn\u0027t wired up to any tracing facility, but defines tracing entry points\n   which can be used to get some insight into the behavior of the Core-level\n   build engine.\n"
    },
    {
      "commit": "fd6edacf9674a894f1d36a812950a083eff7be44",
      "tree": "5ad5560f81acfbdf4b4e655881ae03075c070d4f",
      "parents": [
        "1370ca71339b0c2a01d660834f83f22c94845633"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Tue Sep 26 08:37:00 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Tue Sep 26 09:03:52 2017 -0700"
      },
      "message": "[unittests] Switch test to use well formed Command*s.\n"
    },
    {
      "commit": "1370ca71339b0c2a01d660834f83f22c94845633",
      "tree": "9f855f8f73d6a023b8bcbe97e481e942af2db74a",
      "parents": [
        "c5cfe59e159d05522e5151c127bbd5e11a07cb10",
        "02b51031536992f12e34631680e2fc0395050ee3"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Tue Jul 11 15:21:17 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 11 15:21:17 2017 -0700"
      },
      "message": "Merge pull request #186 from ddunbar/xcconfig-code-signing\n\n[Xcode] Add an easy way to enable code signing."
    },
    {
      "commit": "02b51031536992f12e34631680e2fc0395050ee3",
      "tree": "9f855f8f73d6a023b8bcbe97e481e942af2db74a",
      "parents": [
        "c5cfe59e159d05522e5151c127bbd5e11a07cb10"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Tue Jul 11 12:07:42 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Tue Jul 11 12:45:49 2017 -0700"
      },
      "message": "[Xcode] Add an easy way to enable code signing.\n\n - This isn\u0027t actually on, but it makes it easy to turn on via a simple change\n   to the xcconfig file.\n"
    },
    {
      "commit": "c5cfe59e159d05522e5151c127bbd5e11a07cb10",
      "tree": "979ec6d4c206f6d61f8daa0c8f36d45db8d83c95",
      "parents": [
        "ebda2f0043de4535b1f625685ff91ea164917883",
        "436c4d82071dd6915478b4d931eb261bdd6f3c34"
      ],
      "author": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Tue Jun 20 18:58:25 2017 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 20 18:58:25 2017 +0700"
      },
      "message": "Merge pull request #183 from hughbe/stat-fixes\n\nFix Windows build with posix specific stat APIs"
    },
    {
      "commit": "436c4d82071dd6915478b4d931eb261bdd6f3c34",
      "tree": "8344cd0fec4121bc19a58f43a32c1c55aaea0878",
      "parents": [
        "7fe2e01ffc42741c327bd0d2fa835a8911ef4f35"
      ],
      "author": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Sat Jun 17 11:05:35 2017 +0700"
      },
      "committer": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Tue Jun 20 09:19:08 2017 +0700"
      },
      "message": "Fix typo\n"
    },
    {
      "commit": "ebda2f0043de4535b1f625685ff91ea164917883",
      "tree": "9e614ba49292455b2dde2a1a40dfe2a743cd8c7c",
      "parents": [
        "77ad242fb253c3b19282ac4876e2c5192cf0a013",
        "63b65a644f4224f604367a5508164612f7a9053e"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Mon Jun 19 08:27:40 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 19 08:27:40 2017 -0700"
      },
      "message": "Merge pull request #54 from hughbe/update-import-llvm\n\nUpdate import-llvm to support Windows"
    },
    {
      "commit": "77ad242fb253c3b19282ac4876e2c5192cf0a013",
      "tree": "43241db9c7436489cb8d4d95670446508bd3add7",
      "parents": [
        "db8e51c781cffa707272b7988b3137491fdf631a",
        "089f9922c6cdf68cee068593ba805fb4dceb55ea"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Mon Jun 19 08:25:42 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 19 08:25:42 2017 -0700"
      },
      "message": "Merge pull request #185 from ddunbar/windows-import\n\n[LLVM] Add LLVM import for Windows."
    },
    {
      "commit": "63b65a644f4224f604367a5508164612f7a9053e",
      "tree": "65e3c5504f11d4cbf01117b20e32cccfd7d9e8e9",
      "parents": [
        "1a10bf26e9fc249759dbc92b8bc736f78c10da2e"
      ],
      "author": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Dec 22 17:38:21 2016 +0000"
      },
      "committer": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Sat Jun 17 12:01:24 2017 +0700"
      },
      "message": "Update import-llvm for Windows\n"
    },
    {
      "commit": "089f9922c6cdf68cee068593ba805fb4dceb55ea",
      "tree": "7639929730e61f69ecc219f8030d438724f91a37",
      "parents": [
        "1a10bf26e9fc249759dbc92b8bc736f78c10da2e"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Fri Jun 16 21:36:38 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Fri Jun 16 21:36:38 2017 -0700"
      },
      "message": "[LLVM] Add LLVM import for Windows.\n"
    },
    {
      "commit": "db8e51c781cffa707272b7988b3137491fdf631a",
      "tree": "ad5539504261c842d6e2d8ce61f8c38ba3a597bc",
      "parents": [
        "62bad3a71fe99e48ae44afb860212d264fa8a860",
        "9f603279a6ec7c858a6153f992da737bae397500"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Fri Jun 16 21:01:48 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 16 21:01:48 2017 -0700"
      },
      "message": "Merge pull request #133 from hughbe/ninjabuild-command-consolidate\n\nConsolidate common code between NinjaBuildCommand.cpp and LaneBasedExecutionQueue.cpp"
    },
    {
      "commit": "62bad3a71fe99e48ae44afb860212d264fa8a860",
      "tree": "70fdeaaa7088a7c2564f6fe2a7a51659a9cea47d",
      "parents": [
        "ead0754fa27ab0e2601b598754d307af363748d3",
        "9365de285d5647bfd95bff7b8119d5bd4eea9ee0"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Fri Jun 16 21:00:54 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 16 21:00:54 2017 -0700"
      },
      "message": "Merge pull request #182 from hughbe/gitignore-vs\n\nAdd .vs file to gitignore"
    },
    {
      "commit": "ead0754fa27ab0e2601b598754d307af363748d3",
      "tree": "1c954458bf92d19826ea33e39788f1db67ecf043",
      "parents": [
        "1a10bf26e9fc249759dbc92b8bc736f78c10da2e",
        "61f9c7d1bec903e6c0379f6ff504d8fd32a39c5d"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Fri Jun 16 21:00:28 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 16 21:00:28 2017 -0700"
      },
      "message": "Merge pull request #184 from hughbe/symlink-fix\n\nFix Windows implementation of symlink"
    },
    {
      "commit": "61f9c7d1bec903e6c0379f6ff504d8fd32a39c5d",
      "tree": "1c954458bf92d19826ea33e39788f1db67ecf043",
      "parents": [
        "1a10bf26e9fc249759dbc92b8bc736f78c10da2e"
      ],
      "author": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Jun 15 10:23:02 2017 +0700"
      },
      "committer": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Jun 15 10:23:23 2017 +0700"
      },
      "message": "Fix Windows implementation of symlink\n"
    },
    {
      "commit": "7fe2e01ffc42741c327bd0d2fa835a8911ef4f35",
      "tree": "f08b87232bd66cb4baa76f6066ea955595f16e6d",
      "parents": [
        "68479ead73c0808d745bbead5fc1da47f76f869e"
      ],
      "author": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Jun 15 10:14:33 2017 +0700"
      },
      "committer": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Jun 15 10:14:33 2017 +0700"
      },
      "message": "Fix unit test compilation failures\n"
    },
    {
      "commit": "68479ead73c0808d745bbead5fc1da47f76f869e",
      "tree": "eb3dfd84ada3c2062fc279778987c7e713db34af",
      "parents": [
        "1a10bf26e9fc249759dbc92b8bc736f78c10da2e"
      ],
      "author": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Jun 15 10:14:23 2017 +0700"
      },
      "committer": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Jun 15 10:14:23 2017 +0700"
      },
      "message": "Fix Windows stat failures\n"
    },
    {
      "commit": "9365de285d5647bfd95bff7b8119d5bd4eea9ee0",
      "tree": "9b7e0fe661b78bb4fa5f855838c555c645504bb8",
      "parents": [
        "1a10bf26e9fc249759dbc92b8bc736f78c10da2e"
      ],
      "author": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Jun 15 08:37:26 2017 +0700"
      },
      "committer": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Jun 15 08:37:26 2017 +0700"
      },
      "message": "Add .vs file to gitignore\n"
    },
    {
      "commit": "9f603279a6ec7c858a6153f992da737bae397500",
      "tree": "f42f7fc90eb4b7fa264166b4e42063d7152bb2ac",
      "parents": [
        "13e7f8cf41769f4cf0b64d10bdcd03e4578710d2"
      ],
      "author": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Jun 15 08:20:56 2017 +0700"
      },
      "committer": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Jun 15 08:20:56 2017 +0700"
      },
      "message": "Consolidate more code to look like LaneBasedExecutionQueue in preparation for refactoring\n"
    },
    {
      "commit": "13e7f8cf41769f4cf0b64d10bdcd03e4578710d2",
      "tree": "75b7c732012e654a8ef038d6842e1cf02c6d9b17",
      "parents": [
        "46ee36ddb187dec54f714dbcaeb53f0de0825371"
      ],
      "author": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Mar 23 14:35:00 2017 +0700"
      },
      "committer": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Jun 15 08:10:54 2017 +0700"
      },
      "message": "Handle SIGKILL as well as SIGINT in NinjaBuildComamnd.cpp\n\nAs per discussion in https://github.com/apple/swift-llbuild/pull/74\n"
    },
    {
      "commit": "46ee36ddb187dec54f714dbcaeb53f0de0825371",
      "tree": "5e77cd8c32433ab4960e79aa70596d8bfc167277",
      "parents": [
        "968e7b2c1202abaddc81a07e6ac0e12eb905aa8c"
      ],
      "author": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Mar 23 14:33:02 2017 +0700"
      },
      "committer": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Jun 15 08:10:54 2017 +0700"
      },
      "message": "Use llvm::SmallString instead of std::vector\u003cchar\u003e to match LaneBasedExecutionQueue.cpp\n"
    },
    {
      "commit": "968e7b2c1202abaddc81a07e6ac0e12eb905aa8c",
      "tree": "a4f2160f411b96656b3af1ad90d58544047b18c1",
      "parents": [
        "1a10bf26e9fc249759dbc92b8bc736f78c10da2e"
      ],
      "author": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Mar 23 14:31:09 2017 +0700"
      },
      "committer": {
        "name": "Hugh Bellamy",
        "email": "hughbellars@gmail.com",
        "time": "Thu Jun 15 08:10:53 2017 +0700"
      },
      "message": "Reorder code in NinjaBuildComamnd.cpp to be the same structure and ordering as LaneBasedExecutionQueue.cpp\n"
    },
    {
      "commit": "1a10bf26e9fc249759dbc92b8bc736f78c10da2e",
      "tree": "50174d23fc7028bba234ab5eafc8f579df67b3d7",
      "parents": [
        "aa9510396e92c8bba47919b3d6a303efaa473fee",
        "f9e5d21fd27010ff359674758ec209e55910974e"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Tue Jun 13 16:33:31 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 13 16:33:31 2017 -0700"
      },
      "message": "Merge pull request #181 from ddunbar/ptreetime\n\n[utils] Add rudimentary process tree timing tool."
    },
    {
      "commit": "f9e5d21fd27010ff359674758ec209e55910974e",
      "tree": "50174d23fc7028bba234ab5eafc8f579df67b3d7",
      "parents": [
        "aa9510396e92c8bba47919b3d6a303efaa473fee"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Tue Jun 13 16:32:05 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Tue Jun 13 16:32:05 2017 -0700"
      },
      "message": "[utils] Add rudimentary process tree timing tool.\n\n - This uses dtrace + interpositioning to try and track timing information for a\n   full process tree, which can be useful when analyzing build system\n   performance.\n \n - This has only been tested on macOS, in very limited circumstances.\n"
    },
    {
      "commit": "aa9510396e92c8bba47919b3d6a303efaa473fee",
      "tree": "8c4747dcfe6e076811f7bebddd3241283397efd9",
      "parents": [
        "4232055d0b926ebcc5878a57e8544f90f6969fa8"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu Jun 08 21:01:26 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu Jun 08 21:01:26 2017 -0700"
      },
      "message": "[UI] Update for revised schema.\n\n - This update currently drops the `dependents` view from individual rule\n   results, because we can\u0027t easily satisfy this query in the denormalized\n   schema. We will probably want to build up indices in the loaded database in\n   order to be able to answer these queries efficiently.\n"
    },
    {
      "commit": "4232055d0b926ebcc5878a57e8544f90f6969fa8",
      "tree": "0066c884d448a7841595ff8b607195be06081cb7",
      "parents": [
        "cb3b4b36a2ba988f887ab82aff4882054af041ad",
        "55b768ffd854de0e20b1ef9fa4e440c3e3e66014"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Thu Jun 08 20:29:46 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 08 20:29:46 2017 -0700"
      },
      "message": "Merge pull request #180 from ddunbar/readme-updates\n\nUpdate README a bit."
    },
    {
      "commit": "55b768ffd854de0e20b1ef9fa4e440c3e3e66014",
      "tree": "0066c884d448a7841595ff8b607195be06081cb7",
      "parents": [
        "cb3b4b36a2ba988f887ab82aff4882054af041ad"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed Jun 07 21:51:40 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed Jun 07 21:58:54 2017 -0700"
      },
      "message": "Update README a bit.\n"
    },
    {
      "commit": "cb3b4b36a2ba988f887ab82aff4882054af041ad",
      "tree": "9785168faf660daa525f52d25c49289911d8403d",
      "parents": [
        "92c63537e3f73944d92281053157a20f010a7fff",
        "b9030de01cb209c85d52445cd96ae89403d05408"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Wed May 31 16:27:37 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 31 16:27:37 2017 -0700"
      },
      "message": "Merge pull request #179 from ddunbar/stop-lane-buffering\n\n[BuildSystem] Buffer command output at frontend level."
    },
    {
      "commit": "b9030de01cb209c85d52445cd96ae89403d05408",
      "tree": "9785168faf660daa525f52d25c49289911d8403d",
      "parents": [
        "92c63537e3f73944d92281053157a20f010a7fff"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed May 31 11:44:54 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed May 31 13:02:11 2017 -0700"
      },
      "message": "[BuildSystem] Buffer command output at frontend level.\n\n - The lower level shouldn\u0027t buffer the output, because clients might want to\n   see the streaming output from commands as soon as it comes over the pipe.\n\n - \u003crdar://problem/32233420\u003e llbuild shouldn\u0027t buffer subprocess output before sending to delegate\n"
    },
    {
      "commit": "92c63537e3f73944d92281053157a20f010a7fff",
      "tree": "acd31881d9c0a326361d06111dc822c45baa5580",
      "parents": [
        "eb76671539b996a583228df4871d50ca76774903"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed May 31 11:41:36 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed May 31 11:41:36 2017 -0700"
      },
      "message": "[BuildSystem] Add docs on the link-output-path parameter.\n"
    },
    {
      "commit": "eb76671539b996a583228df4871d50ca76774903",
      "tree": "a7b03196c09a0d2e745eacd5d64a5a5f2736159b",
      "parents": [
        "a2d4189e9461e9b7b90570c60bdfef52c74c8879"
      ],
      "author": {
        "name": "Boris Bügling",
        "email": "bbuegling@apple.com",
        "time": "Tue May 30 19:20:52 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 30 19:20:52 2017 -0700"
      },
      "message": "Add command reporting delegate methods to C API (#178)\n\nThis is a follow-up to #158 to add the newly added delegate methods to\r\nllbuild\u0027s C API."
    },
    {
      "commit": "a2d4189e9461e9b7b90570c60bdfef52c74c8879",
      "tree": "1bab6437b8dc0268238c6955473a8c91dd78392a",
      "parents": [
        "79f182efb6cdccec56636cf5a035791da6b6ab93",
        "b98280c016521b5b84bb6e9c4f52dc5d73ea278c"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Tue May 30 11:06:09 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 30 11:06:09 2017 -0700"
      },
      "message": "Merge pull request #177 from ddunbar/link-output-path\n\n[BuildSystem] Add an experimental feature to expose both views of a s…"
    },
    {
      "commit": "b98280c016521b5b84bb6e9c4f52dc5d73ea278c",
      "tree": "1bab6437b8dc0268238c6955473a8c91dd78392a",
      "parents": [
        "79f182efb6cdccec56636cf5a035791da6b6ab93"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu May 25 12:41:02 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu May 25 12:41:17 2017 -0700"
      },
      "message": "[BuildSystem] Add an experimental feature to expose both views of a symlink.\n\n - There was previously no way to safely see the `stat()`-level consistency of a\n   symlink target, this adds an experimental (albeit very clunky) way to do so\n   by declaring a separate argument to define the link output path from the\n   declared output node.\n"
    },
    {
      "commit": "79f182efb6cdccec56636cf5a035791da6b6ab93",
      "tree": "90342ca607ebbafada6e331a029d0a3bdc76d758",
      "parents": [
        "170d5c216d5ddd527d455006984a064178f1b47b"
      ],
      "author": {
        "name": "Boris Bügling",
        "email": "bbuegling@apple.com",
        "time": "Sat May 20 23:19:08 2017 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 20 23:19:08 2017 +0200"
      },
      "message": "Extract the `isLocatedUnderRootPath` check (#169)\n\nPreviously, we were incrementing the pointer with the first `res.second++`, so the next part of the if statement would see the character after that.\r\n\r\nThis extracts that code, fixes the issue and adds unit tests."
    },
    {
      "commit": "170d5c216d5ddd527d455006984a064178f1b47b",
      "tree": "ab7c40d287cb2d1639ce4099ad10343d482c1dbf",
      "parents": [
        "915f627c3505ef0a39fda1e548072dd6f263030e"
      ],
      "author": {
        "name": "Boris Bügling",
        "email": "bbuegling@apple.com",
        "time": "Sat May 20 11:15:33 2017 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 20 11:15:33 2017 +0200"
      },
      "message": "Add delegate support for command reporting (#158)\n\nCommands can now report additional errors, notes and warnings, not tied\r\nto a command process as before. This is used by the `StaleFileRemoval`\r\ncommand to report deleted files and demotes all its errors to warnings."
    },
    {
      "commit": "915f627c3505ef0a39fda1e548072dd6f263030e",
      "tree": "1b0d7bc525d3fd357dcaeee291522b9afa672b63",
      "parents": [
        "b421b93da0cbde4871118552450606f4fa3f6671"
      ],
      "author": {
        "name": "Boris Bügling",
        "email": "bbuegling@apple.com",
        "time": "Fri May 19 23:19:06 2017 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 19 23:19:06 2017 +0200"
      },
      "message": "Allow stale file removal build values (#167)\n\n"
    },
    {
      "commit": "b421b93da0cbde4871118552450606f4fa3f6671",
      "tree": "f23fc620baedc0897bd4b048007c40ec700df3ba",
      "parents": [
        "29a00aef1358ce82107cba54b7911577d3507c7c",
        "12d7237dfa7637b3b91aaede2965008941e7f81a"
      ],
      "author": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Fri May 19 23:52:08 2017 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 19 23:52:08 2017 +0530"
      },
      "message": "Merge pull request #175 from neonichu/fix-BuildSystemTaskTests\n\nFix `BuildSystemTaskTests`"
    },
    {
      "commit": "12d7237dfa7637b3b91aaede2965008941e7f81a",
      "tree": "f23fc620baedc0897bd4b048007c40ec700df3ba",
      "parents": [
        "29a00aef1358ce82107cba54b7911577d3507c7c"
      ],
      "author": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Fri May 19 20:18:03 2017 +0200"
      },
      "committer": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Fri May 19 20:18:03 2017 +0200"
      },
      "message": "Fix `BuildSystemTaskTests`\n\nThis one needed to be updated after changes to\n`MockBuildSystemDelegate`.\n"
    },
    {
      "commit": "29a00aef1358ce82107cba54b7911577d3507c7c",
      "tree": "00ca1777725b7b606224798c695f34614a904301",
      "parents": [
        "58586afa2dbec66c845be894769c7574c0cee005",
        "fc3d9db5dcce5c5b5ceb7538efeb294445235b54"
      ],
      "author": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Fri May 19 22:41:54 2017 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 19 22:41:54 2017 +0530"
      },
      "message": "Merge pull request #173 from aciidb0mb3r/mock-delegate\n\n[BuildSystem] Check command result in MockBuildSystemDelegate"
    },
    {
      "commit": "58586afa2dbec66c845be894769c7574c0cee005",
      "tree": "b78e4bbfc32b242747d0b9754fb91e10b23936d8",
      "parents": [
        "eca9c15a733a90365cec6af225bcf607d2dfdfc3",
        "1686bbe7eeafb7292fa3a79b459adfddf0e9297b"
      ],
      "author": {
        "name": "Boris Bügling",
        "email": "bbuegling@apple.com",
        "time": "Fri May 19 16:30:53 2017 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 19 16:30:53 2017 +0200"
      },
      "message": "Merge pull request #170 from neonichu/fix-set-difference\n\nUse `set` instead of `unordered_set`"
    },
    {
      "commit": "eca9c15a733a90365cec6af225bcf607d2dfdfc3",
      "tree": "bcb0b4dcdeded70522eea0b8dbb623c6761a8d5a",
      "parents": [
        "79430e878794a53719ad0938891c068711598134",
        "3a621dda909b6d2b1ec985f781c40bc04b107aa8"
      ],
      "author": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Fri May 19 19:44:29 2017 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 19 19:44:29 2017 +0530"
      },
      "message": "Merge pull request #172 from aciidb0mb3r/fix-warning\n\n[BuildSystem] Add missing switch case"
    },
    {
      "commit": "fc3d9db5dcce5c5b5ceb7538efeb294445235b54",
      "tree": "67369c2021a6eb63545439f2e0b0e579aeb69b03",
      "parents": [
        "79430e878794a53719ad0938891c068711598134"
      ],
      "author": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Fri May 19 19:32:57 2017 +0530"
      },
      "committer": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Fri May 19 19:32:57 2017 +0530"
      },
      "message": "[BuildSystem] Check command result in MockBuildSystemDelegate\n"
    },
    {
      "commit": "1686bbe7eeafb7292fa3a79b459adfddf0e9297b",
      "tree": "92c136e0bb5ba3d188d6ec03621277b6e0540340",
      "parents": [
        "fa79dc9a73eaa73f21fe5cf9d287740d8fb04e55"
      ],
      "author": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Thu May 18 22:58:48 2017 +0200"
      },
      "committer": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Fri May 19 14:58:47 2017 +0200"
      },
      "message": "Use `set` instead of `unordered_set`\n\nTurns out that `std::set_difference` does not work with unordered sets,\nbut this didn\u0027t become apparent with the smaller sets we are using in\nthe unit tests.\n"
    },
    {
      "commit": "3a621dda909b6d2b1ec985f781c40bc04b107aa8",
      "tree": "bcb0b4dcdeded70522eea0b8dbb623c6761a8d5a",
      "parents": [
        "79430e878794a53719ad0938891c068711598134"
      ],
      "author": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Fri May 19 17:03:35 2017 +0530"
      },
      "committer": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Fri May 19 17:03:35 2017 +0530"
      },
      "message": "[BuildSystem] Add missing switch case\n"
    },
    {
      "commit": "79430e878794a53719ad0938891c068711598134",
      "tree": "64e3049829608688c715d5c7cf0923a5588425c1",
      "parents": [
        "fa79dc9a73eaa73f21fe5cf9d287740d8fb04e55",
        "2cc02a111ed5d1d1c52be41a727819b7d8622613"
      ],
      "author": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Fri May 19 16:55:51 2017 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 19 16:55:51 2017 +0530"
      },
      "message": "Merge pull request #171 from aciidb0mb3r/add-cmd-result\n\n[BuildSystem] Add CommandResult in commandFinished delegate"
    },
    {
      "commit": "2cc02a111ed5d1d1c52be41a727819b7d8622613",
      "tree": "64e3049829608688c715d5c7cf0923a5588425c1",
      "parents": [
        "fa79dc9a73eaa73f21fe5cf9d287740d8fb04e55"
      ],
      "author": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Fri May 19 12:08:38 2017 +0530"
      },
      "committer": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Fri May 19 14:37:39 2017 +0530"
      },
      "message": "[BuildSystem] Add CommandResult in commandFinished delegate\n\n-- \u003crdar://problem/32288402\u003e Pass CommandResult in BuildSystemFrontendDelegate.commandFinished delegate\n"
    },
    {
      "commit": "fa79dc9a73eaa73f21fe5cf9d287740d8fb04e55",
      "tree": "bfabe440229b1377bf002ea180ef3a368aa29074",
      "parents": [
        "f886e2d7d1cc534e492dd1657830b49c257b340e",
        "4644709e58558cf46864557757f354666fe57817"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Wed May 17 19:39:32 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 17 19:39:32 2017 -0700"
      },
      "message": "Merge pull request #166 from ddunbar/db-version-bump\n\n[Core] Bump DB schema version."
    },
    {
      "commit": "f886e2d7d1cc534e492dd1657830b49c257b340e",
      "tree": "337cdbb163e8aa256e5975023877df9e530254ed",
      "parents": [
        "764cccd4a45e3757308acd2dc90905dcc7af8342",
        "f14923aab793007bb08d42641ed814f23637aec1"
      ],
      "author": {
        "name": "Boris Bügling",
        "email": "bbuegling@apple.com",
        "time": "Thu May 18 00:19:33 2017 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 18 00:19:33 2017 +0200"
      },
      "message": "Merge pull request #163 from neonichu/update-clang-warnings\n\n[Xcode] Update recommended clang warnings"
    },
    {
      "commit": "4644709e58558cf46864557757f354666fe57817",
      "tree": "e9871fe78db8641f17cec59b42fdcef37fb27519",
      "parents": [
        "02810216e92e54a127bc27dce617e9826eec3d8a"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed May 17 13:58:14 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed May 17 13:58:14 2017 -0700"
      },
      "message": "[Core] Bump DB schema version.\n\n - This adds the version bump which should have accompanied fe255aa1.\n"
    },
    {
      "commit": "f14923aab793007bb08d42641ed814f23637aec1",
      "tree": "b8132ce4266e2e6a82ea787f7d7cfc2f5c56292f",
      "parents": [
        "78bc956c34a35dc5a20119da33c2a0edee1b07e6"
      ],
      "author": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Wed May 17 17:53:03 2017 +0200"
      },
      "committer": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Wed May 17 22:52:49 2017 +0200"
      },
      "message": "[Xcode] Update recommended clang warnings\n"
    },
    {
      "commit": "764cccd4a45e3757308acd2dc90905dcc7af8342",
      "tree": "ca622e8bc6709ce430f36f57b208708607af05ad",
      "parents": [
        "02810216e92e54a127bc27dce617e9826eec3d8a",
        "97b18b7e34a35ab77928b83f6e5651222d123181"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Wed May 17 12:14:34 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 17 12:14:34 2017 -0700"
      },
      "message": "Merge pull request #165 from aciidb0mb3r/disable-test\n\n[BuildSystem] Disable cancelAllInQueue test pending investigation"
    },
    {
      "commit": "97b18b7e34a35ab77928b83f6e5651222d123181",
      "tree": "cf859f1a388f0f04aae86dda91fb737f287e41c9",
      "parents": [
        "78bc956c34a35dc5a20119da33c2a0edee1b07e6"
      ],
      "author": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Wed May 17 23:51:50 2017 +0530"
      },
      "committer": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Wed May 17 23:51:50 2017 +0530"
      },
      "message": "[BuildSystem] Disable cancelAllInQueue test pending investigation\n\nThis has been failing on CI.\n"
    },
    {
      "commit": "02810216e92e54a127bc27dce617e9826eec3d8a",
      "tree": "cf78f794363d8a6a96069e601f1d00afcee108ad",
      "parents": [
        "78bc956c34a35dc5a20119da33c2a0edee1b07e6",
        "369d92878bc5203439b09a6680424acf6b2d22ac"
      ],
      "author": {
        "name": "Boris Bügling",
        "email": "bbuegling@apple.com",
        "time": "Wed May 17 19:27:42 2017 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 17 19:27:42 2017 +0200"
      },
      "message": "Merge pull request #164 from neonichu/add-roots-to-stale-file-removal-description\n\nAdd roots to verbose description of `StaleFileRemovalCommand`"
    },
    {
      "commit": "369d92878bc5203439b09a6680424acf6b2d22ac",
      "tree": "cf78f794363d8a6a96069e601f1d00afcee108ad",
      "parents": [
        "78bc956c34a35dc5a20119da33c2a0edee1b07e6"
      ],
      "author": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Wed May 17 18:00:08 2017 +0200"
      },
      "committer": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Wed May 17 18:00:08 2017 +0200"
      },
      "message": "Add roots to verbose description of `StaleFileRemovalCommand`\n"
    },
    {
      "commit": "78bc956c34a35dc5a20119da33c2a0edee1b07e6",
      "tree": "13ad1453a918bbf9d563cdfe868d4249b5e38526",
      "parents": [
        "7d677bf75c68d45c4b4e23189253a033df10ceca",
        "6a0791e2f580364d800623344727b6fd32d352b2"
      ],
      "author": {
        "name": "Boris Bügling",
        "email": "bbuegling@apple.com",
        "time": "Wed May 17 00:27:32 2017 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 17 00:27:32 2017 +0200"
      },
      "message": "Merge pull request #162 from neonichu/recursive-stale-file-removal\n\n\u003crdar://problem/30961839\u003e Implement support for stale file removal"
    },
    {
      "commit": "6a0791e2f580364d800623344727b6fd32d352b2",
      "tree": "c0a1d9d8e36a81b73dcc6b3d918eed8b5cbb5896",
      "parents": [
        "b1f8505e402cd362adaa77d035d11d33dd114342"
      ],
      "author": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Mon May 15 22:15:00 2017 +0200"
      },
      "committer": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Tue May 16 22:57:32 2017 +0200"
      },
      "message": "\u003crdar://problem/30961839\u003e Implement support for stale file removal\n\n- Implement support for recursive removal of directories\n- Implement support for specifying root paths outside of which files\n  will not be removed\n- Add test coverage for new features and a test for verifying that\n  symlink targets will not be removed\n"
    },
    {
      "commit": "7d677bf75c68d45c4b4e23189253a033df10ceca",
      "tree": "d999831379d87c001317a921bccb338195ff06f3",
      "parents": [
        "b1f8505e402cd362adaa77d035d11d33dd114342",
        "cc34966ee0c95bf0f7a43ef71ef6fb87f3f2d183"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Mon May 15 22:41:19 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 15 22:41:19 2017 -0700"
      },
      "message": "Merge pull request #160 from ddunbar/missing-root-document\n\n[BuildSystem] Error if there is no root document."
    },
    {
      "commit": "b1f8505e402cd362adaa77d035d11d33dd114342",
      "tree": "649d04017f7c7f92db7ef84dc9aac8707e283fef",
      "parents": [
        "c386b7944cf598d56728d30a41ba3819ca04844e",
        "fe255aa1332764b8e842a0d6ac589cbd18915a46"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Sat May 13 16:22:48 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 13 16:22:48 2017 -0700"
      },
      "message": "Merge pull request #161 from ddunbar/denormalize-rule-result\n\n[Core/DB] Denormalize rule dependencies."
    },
    {
      "commit": "fe255aa1332764b8e842a0d6ac589cbd18915a46",
      "tree": "649d04017f7c7f92db7ef84dc9aac8707e283fef",
      "parents": [
        "c386b7944cf598d56728d30a41ba3819ca04844e"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Sat May 13 14:28:12 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Sat May 13 14:29:58 2017 -0700"
      },
      "message": "[Core/DB] Denormalize rule dependencies.\n\n - Now that the rule dependencies are stored directly by key ID, we can\n   denormalize the `rule_result` table to directly include the results (as a\n   binary blob). This results in a substantially more compact database and\n   efficient access to the rule result (given that we always rewrite rules\n   wholesale).\n\n - This also enables future optimizations to avoid the result re-insert.\n\n - \u003crdar://problem/32180158\u003e Denormalize rule_result table to include dependencies\n"
    },
    {
      "commit": "cc34966ee0c95bf0f7a43ef71ef6fb87f3f2d183",
      "tree": "afdd46d2d41b87dc2e940dd4e9cebc23c8b01f27",
      "parents": [
        "c386b7944cf598d56728d30a41ba3819ca04844e"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Sat May 13 13:25:22 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Sat May 13 14:16:05 2017 -0700"
      },
      "message": "[BuildSystem] Error if there is no root document.\n\n - \u003crdar://problem/32179388\u003e Crash with no root document\n"
    },
    {
      "commit": "c386b7944cf598d56728d30a41ba3819ca04844e",
      "tree": "b66e25d32429d46436dc734beafe16587fe05469",
      "parents": [
        "eccf0e990d085c464ced83f926945d5cbb63fd29",
        "eae4cc5ec5a8b8271fba95402059017efe67c074"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Sat May 13 02:29:27 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 13 02:29:27 2017 -0700"
      },
      "message": "Merge pull request #159 from neonichu/fix-stale-file-removal-tests\n\n[BuildSystemTaskTests] Make sure first build system is closed before building with the second one"
    },
    {
      "commit": "eae4cc5ec5a8b8271fba95402059017efe67c074",
      "tree": "b66e25d32429d46436dc734beafe16587fe05469",
      "parents": [
        "eccf0e990d085c464ced83f926945d5cbb63fd29"
      ],
      "author": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Sat May 13 11:25:17 2017 +0200"
      },
      "committer": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Sat May 13 11:25:17 2017 +0200"
      },
      "message": "[BuildSystemTaskTests] Make sure first build system is closed before\nbuilding with the second one\n\nOtherwise, we might run into concurrent access on the build database.\n"
    },
    {
      "commit": "eccf0e990d085c464ced83f926945d5cbb63fd29",
      "tree": "a7321b01b59c6f6b0e61376bf2cefe0792f37f89",
      "parents": [
        "0d7c8ca05219fe2280a214e8671e87ff6c4aac32",
        "6ad42b384ef16b6ce836e3065da57f7dd888e07f"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Sat May 13 01:06:27 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 13 01:06:27 2017 -0700"
      },
      "message": "Merge pull request #157 from ddunbar/change-to-keyid-result-v2\n\nChange DB API to find constant key IDs."
    },
    {
      "commit": "0d7c8ca05219fe2280a214e8671e87ff6c4aac32",
      "tree": "0cfcf1f028f28532171b339f8d3834daaf9217e2",
      "parents": [
        "dd69a8cdd6c98d636eabb1b69f3b80f88a7fa59f",
        "9cf8ba952b21f00fecee245585a46c0fc9dd8dc1"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Sat May 13 00:08:26 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 13 00:08:26 2017 -0700"
      },
      "message": "Merge pull request #147 from neonichu/stale-file-removal\n\n\u003crdar://problem/30961839\u003e Implement support for stale file removal"
    },
    {
      "commit": "6ad42b384ef16b6ce836e3065da57f7dd888e07f",
      "tree": "d6fb57ef0927267e6487292fe22d8da7ea64ddbf",
      "parents": [
        "dd69a8cdd6c98d636eabb1b69f3b80f88a7fa59f"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Fri May 12 09:08:13 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Fri May 12 23:34:51 2017 -0700"
      },
      "message": "Change DB API to find constant key IDs.\n\n - This changes the BuildEngine \u003c-\u003e DB interaction to rely on first getting a\n   unique (interned, effectively) ID for all keys.\n\n - That change allows us to then change the BuildEngine-level result to store\n   dependencies in terms of key IDs, instead of expanded rules. This results in\n   dramatically reduced memory usage, but also since this matches the underlying\n   database schema it allows for much more efficient loading of the result\n   dependencies.\n\n - In particular, this eliminates several joins from the database\n   implementation.\n\n - There is potentially more we could do here to eliminate the ancillary key\n   table entirely and simply make the results themselves serve as the canonical\n   identifier for a rule, but that requires a little more work.\n\n - This is good for a 35% speedup on null builds of large build graphs.\n\n - This is a reapplication of 27a4a5d9 with a change to fix the concurrent\n   access to the SQLite database (https://bugs.swift.org/browse/SR-4876)\n\n - \u003crdar://problem/32139612\u003e Change RuleResult to store key IDs\n"
    },
    {
      "commit": "9cf8ba952b21f00fecee245585a46c0fc9dd8dc1",
      "tree": "6963e079581fa435a192f9a90aa5ee44485cf59c",
      "parents": [
        "fc4eb86019022d6517fe131477ffe0b5917a6d8c"
      ],
      "author": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Sun May 07 19:25:15 2017 +0200"
      },
      "committer": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Sat May 13 00:35:25 2017 +0200"
      },
      "message": "\u003crdar://problem/30961839\u003e Implement support for stale file removal\n\nImplement stale file removal and related tests.\n"
    },
    {
      "commit": "dd69a8cdd6c98d636eabb1b69f3b80f88a7fa59f",
      "tree": "b4223bcd9e2d9ec5e79c31c4e12a8f482d7d86ae",
      "parents": [
        "8ea0cc80c0c09cd40ecdacf81ce83391ac11e758",
        "638e90a69dcc3f04a5085b6e2059716fc3b6c266"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Fri May 12 09:10:46 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 12 09:10:46 2017 -0700"
      },
      "message": "Merge pull request #156 from apple/revert-155-change-to-keyid-result\n\nRevert \"Change DB API to find constant key IDs.\""
    },
    {
      "commit": "638e90a69dcc3f04a5085b6e2059716fc3b6c266",
      "tree": "b4223bcd9e2d9ec5e79c31c4e12a8f482d7d86ae",
      "parents": [
        "8ea0cc80c0c09cd40ecdacf81ce83391ac11e758"
      ],
      "author": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Fri May 12 21:00:54 2017 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 12 21:00:54 2017 +0530"
      },
      "message": "Revert \"Change DB API to find constant key IDs.\"\n"
    },
    {
      "commit": "8ea0cc80c0c09cd40ecdacf81ce83391ac11e758",
      "tree": "810cd5342d56d996124ab9967ae5b98e3ca96e7e",
      "parents": [
        "faeb55fdef89edbda2439abc23ae2e2b1e406553",
        "27a4a5d98edc8a8a975d3a6d9d4f7b28d4f71399"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Thu May 11 18:53:23 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 11 18:53:23 2017 -0700"
      },
      "message": "Merge pull request #155 from ddunbar/change-to-keyid-result\n\nChange DB API to find constant key IDs."
    },
    {
      "commit": "faeb55fdef89edbda2439abc23ae2e2b1e406553",
      "tree": "b4223bcd9e2d9ec5e79c31c4e12a8f482d7d86ae",
      "parents": [
        "fc4eb86019022d6517fe131477ffe0b5917a6d8c",
        "ad5713721d7f1336332e709a0913277b01c81388"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Thu May 11 18:00:09 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 11 18:00:09 2017 -0700"
      },
      "message": "Merge pull request #154 from ddunbar/builddescription-stringmap\n\nUse a StringMap for BuildDescription data."
    },
    {
      "commit": "27a4a5d98edc8a8a975d3a6d9d4f7b28d4f71399",
      "tree": "6c2cb81cd157d520aa1bfea53b01acde6e3a634b",
      "parents": [
        "fc4eb86019022d6517fe131477ffe0b5917a6d8c"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu May 11 13:06:11 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu May 11 14:47:34 2017 -0700"
      },
      "message": "Change DB API to find constant key IDs.\n\n - This changes the BuildEngine \u003c-\u003e DB interaction to rely on first getting a\n   unique (interned, effectively) ID for all keys.\n\n - That change allows us to then change the BuildEngine-level result to store\n   dependencies in terms of key IDs, instead of expanded rules. This results in\n   dramatically reduced memory usage, but also since this matches the underlying\n   database schema it allows for much more efficient loading of the result\n   dependencies.\n\n - In particular, this eliminates several joins from the database\n   implementation.\n\n - There is potentially more we could do here to eliminate the ancillary key\n   table entirely and simply make the results themselves serve as the canonical\n   identifier for a rule, but that requires a little more work.\n\n - This is good for a 35% speedup on null builds of large build graphs.\n\n - \u003crdar://problem/32139612\u003e Change RuleResult to store key IDs\n"
    },
    {
      "commit": "ad5713721d7f1336332e709a0913277b01c81388",
      "tree": "b4223bcd9e2d9ec5e79c31c4e12a8f482d7d86ae",
      "parents": [
        "fc4eb86019022d6517fe131477ffe0b5917a6d8c"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu May 11 02:17:34 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu May 11 12:55:24 2017 -0700"
      },
      "message": "Use a StringMap for BuildDescription data.\n"
    },
    {
      "commit": "fc4eb86019022d6517fe131477ffe0b5917a6d8c",
      "tree": "bbdee65d99a430bb2d9bd7e49b1759d1b0237b33",
      "parents": [
        "10dc14a07dc34d9e1a279179d161479440e67d65",
        "f4286012bf2b2995e637781614e8e73a85794d55"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Thu May 11 09:19:02 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 11 09:19:02 2017 -0700"
      },
      "message": "Merge pull request #153 from neonichu/update-scheme\n\n[Xcode] Update llbuild scheme."
    },
    {
      "commit": "10dc14a07dc34d9e1a279179d161479440e67d65",
      "tree": "89d0d12149bb98999fcdc7036d3bbc282eeece65",
      "parents": [
        "949219b342346cfbb3f882db1fed46c6c373c0ec",
        "a3559d9ef84cb5e26159e2dc703ca048ca874a16"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Thu May 11 09:17:49 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 11 09:17:49 2017 -0700"
      },
      "message": "Merge pull request #152 from ddunbar/builddescription-interning\n\nIntern build description strings."
    },
    {
      "commit": "f4286012bf2b2995e637781614e8e73a85794d55",
      "tree": "670df9bbd330ae4885851bc8a9818032186441c3",
      "parents": [
        "949219b342346cfbb3f882db1fed46c6c373c0ec"
      ],
      "author": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Thu May 11 17:04:13 2017 +0200"
      },
      "committer": {
        "name": "Boris Buegling",
        "email": "bbuegling@apple.com",
        "time": "Thu May 11 17:04:13 2017 +0200"
      },
      "message": "[Xcode] Update llbuild scheme.\n\nSeems like this is fallout from\n41b66df0dc875cd2b530d25fb47a1fafe4dda40b, the scheme will be\nautomatically changed to this after running the tests in Xcode.\n"
    },
    {
      "commit": "949219b342346cfbb3f882db1fed46c6c373c0ec",
      "tree": "f73c172fb9e4c6fc1d0d40df5264c803ce43abce",
      "parents": [
        "099cbd467a9cded59b318660d0769e10f0a49adb",
        "59a05549769f153988cc5ddcceaf36263ff87f87"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Thu May 11 07:03:06 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 11 07:03:06 2017 -0700"
      },
      "message": "Merge pull request #149 from aciidb0mb3r/fix-cancel-race-2\n\n[BuildSystem] Fix yet another cancellation race"
    },
    {
      "commit": "099cbd467a9cded59b318660d0769e10f0a49adb",
      "tree": "9d0ae80209c375f2950e7a2496265c974750fa78",
      "parents": [
        "ff46942674e543ca0198860bc93a9c72d4364409",
        "510d5387e0be8818e4a828a3bfd6d0332cf49ca2"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Thu May 11 04:12:06 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 11 04:12:06 2017 -0700"
      },
      "message": "Merge pull request #148 from ddunbar/dont-overcommit\n\n[BuildSystem] Don\u0027t overcommit CPUs in execution queue."
    },
    {
      "commit": "ff46942674e543ca0198860bc93a9c72d4364409",
      "tree": "aed053c2bc720d5876891edb2371298103209dac",
      "parents": [
        "9867b8da282e4b8848ff92a33eb68d398d9b3af5",
        "a325944d7cf362951ec02d6ff218fc2141292915"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel@zuster.org",
        "time": "Thu May 11 04:11:01 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 11 04:11:01 2017 -0700"
      },
      "message": "Merge pull request #150 from ddunbar/optimize-rule-dep-search\n\nOptimize the rule dependency search query."
    },
    {
      "commit": "59a05549769f153988cc5ddcceaf36263ff87f87",
      "tree": "c4a4aa6f700ad7823d9b76bff0f23f8cf504598d",
      "parents": [
        "9867b8da282e4b8848ff92a33eb68d398d9b3af5"
      ],
      "author": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Thu May 11 01:56:35 2017 +0530"
      },
      "committer": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Thu May 11 15:58:40 2017 +0530"
      },
      "message": "[BuildSystem] Fix yet another cancellation race\n"
    },
    {
      "commit": "a3559d9ef84cb5e26159e2dc703ca048ca874a16",
      "tree": "1d181363feb40c317a1bd40c908320090f874030",
      "parents": [
        "0c8b7cdb5a97f1132859459bbbd132a22c6c6829"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu May 11 01:48:41 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu May 11 03:26:46 2017 -0700"
      },
      "message": "Intern build description strings.\n\n - It is common to have many duplicated strings in a loaded build description\n   file (typically from command line arguments), so this patch optimizes the\n   memory use of the build description by interning these strings while loading.\n\n - While we pay some cost for the interning itself, on the other hand this\n   allows avoiding what would otherwise be additional allocations in many cases,\n   so the interning ends up paying for itself while reducing memory footprint \u0026\n   improving cache locality. On the balance my tests indicate this is a wash to\n   small improvement in terms of CPU use.\n\n - \u003crdar://problem/32128433\u003e Intern build description strings\n"
    },
    {
      "commit": "a325944d7cf362951ec02d6ff218fc2141292915",
      "tree": "c841d01f0f45b1726f5199ca496a391f092ede3a",
      "parents": [
        "0c8b7cdb5a97f1132859459bbbd132a22c6c6829"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu May 11 00:48:51 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Thu May 11 00:49:20 2017 -0700"
      },
      "message": "Optimize the rule dependency search query.\n\n - This adds an additional covering index for the rule dependency query, which\n   is important for the null build case where our work largely amounts to\n   populating and scanning the results.\n\n - This fixes a regression introduced in\n   bcc3d1011eff6450d74f9b0bec913d17bf48efa2 -- the table primary key index was\n   previously covering, but now is not because of the required ordinal\n   parameter.\n\n - This change is unfortunate as there is a lot of redundancy in the tables, and\n   this increases database size by 25% in one example, but it is also good for a\n   ~10% win in null build time on a large graph.\n\n - \u003crdar://problem/32127527\u003e Investigate optimizing rule dependency w/ ordinal lookup\n"
    },
    {
      "commit": "9867b8da282e4b8848ff92a33eb68d398d9b3af5",
      "tree": "74c91c390e016f3203ddfa143114a352e19e7e08",
      "parents": [
        "0c8b7cdb5a97f1132859459bbbd132a22c6c6829",
        "ab1502557bad5ad627851268845a558381005878"
      ],
      "author": {
        "name": "Ankit Aggarwal",
        "email": "ankit_aggarwal@apple.com",
        "time": "Thu May 11 08:44:14 2017 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 11 08:44:14 2017 +0530"
      },
      "message": "Merge pull request #146 from aciidb0mb3r/fix-cancel-race\n\n[BuildSystem] Fix a race between build() and cancel()"
    },
    {
      "commit": "0c8b7cdb5a97f1132859459bbbd132a22c6c6829",
      "tree": "deb01c41b3c39fda3d66496a47d3d3165891b4e0",
      "parents": [
        "c596636d3f02c048adcef8f3b51e722bb77c023e"
      ],
      "author": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed May 10 16:44:42 2017 -0700"
      },
      "committer": {
        "name": "Daniel Dunbar",
        "email": "daniel_dunbar@apple.com",
        "time": "Wed May 10 16:45:35 2017 -0700"
      },
      "message": "[ui] Add a primitive trace UI.\n\n - This is just an initial sketch of loading a trace file and showing all of the\n   tasks which ran (in the order that they were readied).\n"
    }
  ],
  "next": "c596636d3f02c048adcef8f3b51e722bb77c023e"
}
