)]}'
{
  "log": [
    {
      "commit": "ccf6fc89ac994ac1f206ef25ad4aa291d6f1be1a",
      "tree": "a1a6b720d203ee4294ae3eccda30755aa7ff0aec",
      "parents": [
        "0635ca081a9d8051b9cb81e6531a5b0f706337d1"
      ],
      "author": {
        "name": "Peter Karman",
        "email": "karpet@peknet.com",
        "time": "Thu Mar 08 09:23:25 2018 -0600"
      },
      "committer": {
        "name": "Peter Karman",
        "email": "karpet@peknet.com",
        "time": "Thu Mar 08 09:23:25 2018 -0600"
      },
      "message": "Remove md5 checksum file from release prep\n"
    },
    {
      "commit": "0635ca081a9d8051b9cb81e6531a5b0f706337d1",
      "tree": "58fda2dc0a5b2b6b98750c3fc54121c2a013634b",
      "parents": [
        "4c6d5a41fd86418342a25238e36787b74471cb84",
        "0b84711bbe9c04dea37f1daaadd42de0a8f63f17"
      ],
      "author": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Feb 14 19:08:22 2018 -0800"
      },
      "committer": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Feb 14 19:08:22 2018 -0800"
      },
      "message": "Merge branch \u0027go_caller_filepath\u0027.\n"
    },
    {
      "commit": "0b84711bbe9c04dea37f1daaadd42de0a8f63f17",
      "tree": "58fda2dc0a5b2b6b98750c3fc54121c2a013634b",
      "parents": [
        "4c6d5a41fd86418342a25238e36787b74471cb84"
      ],
      "author": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Feb 14 18:54:04 2018 -0800"
      },
      "committer": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Feb 14 19:08:07 2018 -0800"
      },
      "message": "Kludge file location from Caller().\n\nThe behavior of Caller() is not guaranteed, and sometimes contains\nartifacts of optimization.  Work around its unpredictability by adding\nanother case.\n"
    },
    {
      "commit": "4c6d5a41fd86418342a25238e36787b74471cb84",
      "tree": "7e16270a1887ae93b694dd3a54ddcce0e68a804e",
      "parents": [
        "d8baf248bb14f4ae2dd358721b184d207412cdc5"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 08 15:53:57 2018 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 08 16:07:13 2018 +0100"
      },
      "message": "Fix Travis Perl versions\n\nThe Perl versions available under Travis have changed and many older\nreleases were removed. Make perlbrew build releases that aren\u0027t\ninstalled. Reduce the number of tested versions, but add test with\nblead.\n"
    },
    {
      "commit": "d8baf248bb14f4ae2dd358721b184d207412cdc5",
      "tree": "9400882d65c73833180c1c00c8df4997ee8c1b2e",
      "parents": [
        "e011b963e34890921f87942d0073b56a81e2c6cf"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 08 14:55:16 2018 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 08 16:07:13 2018 +0100"
      },
      "message": "Upgrade bundled Lemon parser to latest version\n\nlemon.c is now at file 7f773532 from 2017-12-27\nlempar.c is now at file da840fc8 from 2018-01-17\n"
    },
    {
      "commit": "e011b963e34890921f87942d0073b56a81e2c6cf",
      "tree": "73f915bfa28acae0e9a2d709f5881c7c3edd77a2",
      "parents": [
        "d09e6d27692d105182241c6788fb6907789ec492"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 08 14:29:11 2018 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 08 16:07:13 2018 +0100"
      },
      "message": "Don\u0027t pass negative token id to Lemon parser\n\nNewer Lemon versions throw an assertion if they encounter invalid\ntoken ids.\n\nFixes LUCY-327. Thanks to Petr Pisar for the report.\n"
    },
    {
      "commit": "d09e6d27692d105182241c6788fb6907789ec492",
      "tree": "c3d4114b3a8176a011d08524c1ed2a7a91bea16e",
      "parents": [
        "a1a61b7282ec5068b72dc5c912be26c508f0bbc8"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 08 13:34:41 2018 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 08 16:07:13 2018 +0100"
      },
      "message": "Run Travis tests with PERL_USE_UNSAFE_INC\u003d0\n\nThis makes sure that Test::Harness doesn\u0027t set PERL_USE_UNSAFE_INC to 1\nand that the tests are actually run without . in @INC.\n"
    },
    {
      "commit": "a1a61b7282ec5068b72dc5c912be26c508f0bbc8",
      "tree": "1d9ff0c704641de46f566753e88185485a62e6c4",
      "parents": [
        "598b4d074029998d30ad9a3b85190cc95aa00e0a"
      ],
      "author": {
        "name": "Peter Karman",
        "email": "karpet@peknet.com",
        "time": "Wed Aug 16 09:33:27 2017 -0500"
      },
      "committer": {
        "name": "Peter Karman",
        "email": "karpet@peknet.com",
        "time": "Wed Aug 16 09:33:27 2017 -0500"
      },
      "message": "Add sha512 explicit algorithm to file extension\n"
    },
    {
      "commit": "598b4d074029998d30ad9a3b85190cc95aa00e0a",
      "tree": "ae552b3ca158480738e6e0ee1ab8bf21d3260ec7",
      "parents": [
        "b22794165abfcd33d5fd4e578397a6a1926f9c6b"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat May 20 16:01:30 2017 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat May 20 16:01:30 2017 +0200"
      },
      "message": "Fix handling of trailing double quotes in QueryParser\n\nFixes LUCY-325.\n"
    },
    {
      "commit": "b22794165abfcd33d5fd4e578397a6a1926f9c6b",
      "tree": "ffaaacaf68a9765d65576eac02bc46c269fdbd59",
      "parents": [
        "5535d25f8a5b1ad86e2d5540589c6e46654e350e"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat May 20 15:02:38 2017 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat May 20 15:02:38 2017 +0200"
      },
      "message": "Regen charmonizer.c for --rpath fix\n"
    },
    {
      "commit": "5535d25f8a5b1ad86e2d5540589c6e46654e350e",
      "tree": "cc23e3ceb871358e7ae07ef07b0ec6954ea8e271",
      "parents": [
        "d7feb997003ae1fc84a348e8584ea97b69b02d95"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Apr 16 12:43:57 2017 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Apr 16 12:43:57 2017 +0200"
      },
      "message": "Fix previous merge of \u0027improve-locking\u0027 branch\n\nI accidentally merged the first version of the \u0027improve-locking\u0027 branch.\nAdd changes to the \u0027v2\u0027 branch as separate commit.\n"
    },
    {
      "commit": "d7feb997003ae1fc84a348e8584ea97b69b02d95",
      "tree": "177019d262176d1b9f254ecf30709ae2065ee57a",
      "parents": [
        "7a64a288c36f7d3e3b30fd0f0605d7570e0c5a5a",
        "a3cf33f1efc796a284d6a5761142f89a1319ac52"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Apr 16 12:15:01 2017 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Apr 16 12:15:01 2017 +0200"
      },
      "message": "Merge branch \u0027improve-locking\u0027\n\nFixes LUCY-323.\n\n- Major rewrite of FilePurger, making it do less work.\n- Eliminate global deletion lock, making PolyReader and FilePurger\n  never wait for a lock.\n- Redesign Lock API in preparation for native locks.\n- Remove LockFactory.\n- Fix locking bug with non-default merge lock timeout.\n- Fix locking bug with concurrent BackgroundMergers.\n- Port some tests to C.\n"
    },
    {
      "commit": "a3cf33f1efc796a284d6a5761142f89a1319ac52",
      "tree": "177019d262176d1b9f254ecf30709ae2065ee57a",
      "parents": [
        "6e8538a8834a49da7e8cce8b94decc130467b0f3",
        "7a64a288c36f7d3e3b30fd0f0605d7570e0c5a5a"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Mar 17 17:10:51 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Mar 17 17:10:51 2017 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into improve-locking\n"
    },
    {
      "commit": "7a64a288c36f7d3e3b30fd0f0605d7570e0c5a5a",
      "tree": "7a4fd4417bb0893ed7dcc2682463f412a783a275",
      "parents": [
        "54d5093f51b938e55fd734fbb1d3162f390452be"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Mar 05 16:31:36 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Mar 05 16:36:49 2017 +0100"
      },
      "message": "Create files with FILE_ATTRIBUTE_NOT_CONTENT_INDEXED\n\nMight avoid problems with the Windows Search Service, although my\nearlier testing suggests that the only reliable solution is to\nexclude the folder via Indexing Options in Control Panel.\n"
    },
    {
      "commit": "54d5093f51b938e55fd734fbb1d3162f390452be",
      "tree": "4e39382e0160ab652d0ec38bd2377c2acb00b3bd",
      "parents": [
        "3b1b63e8d8f7fcdf30d4c2af7c9ee519c662569a"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Mar 05 16:28:02 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Mar 05 16:29:50 2017 +0100"
      },
      "message": "Make FSFolder always use Windows API\n\nFixes LUCY-324.\n"
    },
    {
      "commit": "3b1b63e8d8f7fcdf30d4c2af7c9ee519c662569a",
      "tree": "5ddc8d32724e670567c2d6e3a6280ecb33a85e14",
      "parents": [
        "de646e69ebc74cde8536b2b4b1a85ee4d5a6c54c"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Mar 05 14:21:29 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Mar 05 16:29:44 2017 +0100"
      },
      "message": "Use Windows API to delete and rename files\n\nDelete files on Windows by calling CreateFile with\nFILE_FLAG_DELETE_ON_CLOSE and closing the handle immediately. Unlike\nDeleteFile, this allows files opened with FILE_SHARE_DELETE to be\n(eventually) deleted.\n\nPart of LUCY-324.\n"
    },
    {
      "commit": "de646e69ebc74cde8536b2b4b1a85ee4d5a6c54c",
      "tree": "3052b275f173817e248a11ff9dd51e422b31a5f1",
      "parents": [
        "291a3269312a29792f8294fdf1b1f68dbfd94a79"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Mar 05 01:09:14 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Mar 05 16:29:44 2017 +0100"
      },
      "message": "Fix t/051-fsfile.t cleanup on Windows\n"
    },
    {
      "commit": "291a3269312a29792f8294fdf1b1f68dbfd94a79",
      "tree": "9c82f056030ec90f9ebfda6b6d84657a9ba6c057",
      "parents": [
        "488d6f4cfbf23faf79c52de193fc50de6152236e"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Feb 22 18:55:05 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Mar 04 18:28:32 2017 +0100"
      },
      "message": "Avoid rescanning the index folder for latest snapshot\n\nEliminate up to four unnecessary scans in BackgroudMerger:\n\n- BGMerger_init\n- S_merge_updated_deletions (twice)\n- BGMerger_Prepare_Commit\n\nEliminate two unnecessary scans in Indexer:\n\n- Indexer_init\n- Indexer_Prepare_Commit\n"
    },
    {
      "commit": "488d6f4cfbf23faf79c52de193fc50de6152236e",
      "tree": "61ccdd4b9521dc37b42d3077941908b52f8046cb",
      "parents": [
        "040bb290f12f8df015b1d9ae99758f1600a52f18"
      ],
      "author": {
        "name": "Peter Karman",
        "email": "karpet@peknet.com",
        "time": "Thu Feb 23 20:30:51 2017 -0600"
      },
      "committer": {
        "name": "Peter Karman",
        "email": "karpet@peknet.com",
        "time": "Thu Feb 23 20:30:51 2017 -0600"
      },
      "message": "Add test showing custom analyzer\n\n**Why**: User discussion on email list revealed our Analyzer docs\nneeded bolstering. This test demonstrates the simple custom\nanalyzer use case.\n\nRef https://lists.apache.org/thread.html/7e0f446bcccddf8faaffbb4fbb5a5265016a06f736f30757f0ee35af@%3Cuser.lucy.apache.org%3E\n"
    },
    {
      "commit": "040bb290f12f8df015b1d9ae99758f1600a52f18",
      "tree": "3051ef2a141160a0f87f113143b24521cfb2c9f5",
      "parents": [
        "5f15a92bde4c63e2b0d1c3d8b74a294ed8a3d1f0"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 23 16:46:24 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 23 17:15:36 2017 +0100"
      },
      "message": "Improve Analyzer documentation\n\nDocument that Analyzer subclasses must override the Equals method.\nAdd synopsis with example classes to Perl POD.\n"
    },
    {
      "commit": "6e8538a8834a49da7e8cce8b94decc130467b0f3",
      "tree": "d02e77456a60c25f04bfbf4c21045ed09e7b94c9",
      "parents": [
        "2bd2bc611325ee643f325ecfd11d5227319949a8"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Feb 19 17:01:50 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:51:32 2017 +0100"
      },
      "message": "Move LockFileLock to separate file\n"
    },
    {
      "commit": "2bd2bc611325ee643f325ecfd11d5227319949a8",
      "tree": "0e7dff12b36dda6a59a75e9931db07976f3b236f",
      "parents": [
        "d23b560dc34d1c1cbc731fdc745b4e72324d8717"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Feb 19 16:21:00 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:51:32 2017 +0100"
      },
      "message": "Move host ivar from Lock to LockFileLock\n"
    },
    {
      "commit": "d23b560dc34d1c1cbc731fdc745b4e72324d8717",
      "tree": "228a33a0423e7f37f7b7d3051d73c53e559cdeaf",
      "parents": [
        "35388cd22600cb3c202cf11c8c9afd661c8f4fe4"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Feb 19 14:09:02 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:51:30 2017 +0100"
      },
      "message": "Release locks on destruction\n"
    },
    {
      "commit": "35388cd22600cb3c202cf11c8c9afd661c8f4fe4",
      "tree": "2bb2c0de1bc742c3331deee6d5484899196f9ca7",
      "parents": [
        "e06cdbf63d3036c3a33e5265444d827065539e92"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 17 21:38:56 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:48:17 2017 +0100"
      },
      "message": "Port LockFileLock tests to C\n"
    },
    {
      "commit": "e06cdbf63d3036c3a33e5265444d827065539e92",
      "tree": "1275a3ddd0b94aa37e370454e865fea91c0b4e77",
      "parents": [
        "38a33badb310ba9fea5bf9a923277da4a82ec369"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 17 20:26:13 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:26:22 2017 +0100"
      },
      "message": "Don\u0027t hide I/O errors behind LockErr\n\nOnly return a LockErr if there\u0027s lock contention, not on unrelated\nI/O errors.\n"
    },
    {
      "commit": "38a33badb310ba9fea5bf9a923277da4a82ec369",
      "tree": "0f36a1c2e9441514e0f7a5efee3b25eba4dff922",
      "parents": [
        "de14d4ca31ab27fc1569966c1b182fa4829afd40"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 17 19:13:59 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:26:22 2017 +0100"
      },
      "message": "Remove Lock_Is_Locked\n"
    },
    {
      "commit": "de14d4ca31ab27fc1569966c1b182fa4829afd40",
      "tree": "5cd9f0b161e5c429ddab73c0f309040862114b96",
      "parents": [
        "4e6e5bbf2814e8e2a824b5ae1b91d068233cd248"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 17 18:34:31 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:26:22 2017 +0100"
      },
      "message": "Change lock acquitision order in BGMerger_init\n\nObtain the merge lock before the write lock so that an already running\nbackground merger won\u0027t abort when failing to acquire the write lock\nduring commit.\n\nRelease the merge lock at the very end of BGMerger_Commit. It doesn\u0027t\nreally matter when we release the merge lock after we acquired the\nwrite lock in BGMerger_Prepare_Commit. I think it makes the code\nclearer to release it at the very end of BGMerger_Commit.\n"
    },
    {
      "commit": "4e6e5bbf2814e8e2a824b5ae1b91d068233cd248",
      "tree": "82a64673f5fc64f458d81a24e39d8401c882d357",
      "parents": [
        "5270b988c477a2e1c110e2069c66bb2d3f27a60f"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 17 18:25:35 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:26:22 2017 +0100"
      },
      "message": "Improve merge lock handling\n\nDon\u0027t check the merge lock with Is_Locked in\nFilePurger_Purge_Aborted_Merge. This prevented background mergers from\ncleaning up because they already held the merge lock. Require that\ncallers hold the merge lock instead.\n\nDon\u0027t check the merge lock with Is_Locked in Indexer_init. Since we\nhold the write lock, and the merge.json file from aborted merge has\nbeen removed, the presence of a merge.json file is a reliable indicator\nthat it belongs to an active background merger. Move the merge lock\nrequest form S_maybe_merge to Indexer_init.\n\nAlso, S_maybe_merge used to Obtain the merge lock instead of merely\nRequesting it. Waiting for a potentially long-running background merger\nslows things down unnecessarily and increases the chance for write lock\ncontention. This didn\u0027t affect the default configuration which has a\nzero merge lock timeout.\n"
    },
    {
      "commit": "5270b988c477a2e1c110e2069c66bb2d3f27a60f",
      "tree": "9619567cdc428f6e21e764a3ff791b472d5ebc5f",
      "parents": [
        "79161a4b233ce3570ecf4c48745b469ccb50aec7"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 17 17:19:43 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:26:21 2017 +0100"
      },
      "message": "Rework snapshot and deletion locks\n\nRequest exclusive or shared snapshot locks instead of the global\ndeletion lock. This removes the need to retry lock requests and\nreduces contention.\n"
    },
    {
      "commit": "79161a4b233ce3570ecf4c48745b469ccb50aec7",
      "tree": "dd6ae577fc19e422bc61e744e60799fb552a5a4c",
      "parents": [
        "3e2298650d8fc0213ce25078cadeb4f22d45bb5f"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 17 13:53:59 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:26:21 2017 +0100"
      },
      "message": "Don\u0027t allow double obtain/release\n"
    },
    {
      "commit": "3e2298650d8fc0213ce25078cadeb4f22d45bb5f",
      "tree": "e1d7b87a9a5859509f711c35540782ae5a0784ae",
      "parents": [
        "1a8e02df0a0257e4ba70de4a41504507b0ba8a47"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 16 17:47:33 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:26:21 2017 +0100"
      },
      "message": "Remove LockFactory and make Lock a private class\n\nIf there are users who really use custom locks, this can be reverted.\n"
    },
    {
      "commit": "1a8e02df0a0257e4ba70de4a41504507b0ba8a47",
      "tree": "5200f25e20239a3dcb4209ddfe8bf569bdaba8d2",
      "parents": [
        "bb83d0d77bf99ed09b2bbad782c3c1d3b94f04a9"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 16 16:47:03 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:26:21 2017 +0100"
      },
      "message": "Always check for stale locks in Is_Locked\n\nNote that checking for stale locks isn\u0027t necessary when requesting\nshared locks.\n"
    },
    {
      "commit": "bb83d0d77bf99ed09b2bbad782c3c1d3b94f04a9",
      "tree": "4faa2c3307a8bc8ca40dd3218c18b5a2dca1e47e",
      "parents": [
        "2051451de456f51e35345f12206ca4cb0040dd7c"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 16 15:58:45 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:26:21 2017 +0100"
      },
      "message": "Merge SharedLock into LockFileLock\n\nSupplying the lock type when requesting a lock better matches other\nfile lock APIs. Merging the implementations allows to convert\nMaybe_Delete_File into a static function.\n\nMake shared and exclusive locks check for locks of the other type\nexcept for exclusive locks created with `exclusive_only`.\n\nClear_Stale is broken for shared locks but will be removed with the\nfollowing commit.\n"
    },
    {
      "commit": "2051451de456f51e35345f12206ca4cb0040dd7c",
      "tree": "7bb2367ae6f47877c0adf54992ea805893cc4558",
      "parents": [
        "5f15a92bde4c63e2b0d1c3d8b74a294ed8a3d1f0"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Feb 15 05:10:07 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:26:21 2017 +0100"
      },
      "message": "Separate purging of snapshots and aborted merges\n\nPurge aborted merge when starting an Indexer/BGMerger session and\npurge snapshots at the end of Commit.\n\nRework FilePurger to use a single hash for purged and spared files\nwhen purging snapshots. Optimize Folder handling assuming that\nSnapshots only contain entries local to the index folder.\n\nMake sure to list the contents of the real directory, not the\nvirtual compound file directory. CFReaderDirHandle lists both real\nand virtual files which might be a bug in itself.\n\nPort BGMerger tests to C.\n\nTODO: Move Perl BGMerge test to t/binding.\n"
    },
    {
      "commit": "5f15a92bde4c63e2b0d1c3d8b74a294ed8a3d1f0",
      "tree": "af27a4a6a813cb52e1249b1ab402af83b1ce1a14",
      "parents": [
        "d14281228c3368386c3d98e211687ead916cee1c"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Feb 19 22:43:03 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 20 16:10:18 2017 +0100"
      },
      "message": "Make FSFileHandle always use Windows handles\n\nSwitch FSFileHandle over to WinAPI for open/close/write.\n\nAdd sanity checks to FileHandle_do_open.\n\nFix minor bug in Unix Write method (-1 return value was added to file\nlength). Make Windows Read method use synchronous API and add an extra\ncheck for unexpected EOF.\n\nFixes LUCY-321.\n"
    },
    {
      "commit": "d14281228c3368386c3d98e211687ead916cee1c",
      "tree": "7dfd45ecedd770c2aa306c510c2514ce75eacf86",
      "parents": [
        "85ca41becddfc4a47c684b7b74e3cc51fe2cf688"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 18 00:58:02 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 18 00:58:02 2017 +0100"
      },
      "message": "Fix EasyAnalyzer_new default\n\nLucy::Analyzer::EasyAnalyzer-\u003enew segfaulted without arguments.\n"
    },
    {
      "commit": "85ca41becddfc4a47c684b7b74e3cc51fe2cf688",
      "tree": "4cb66047776ca7e4b7423033be896ef52e0d8c53",
      "parents": [
        "d6fcd5fb475f6cbeedb72ccd5bcbfa5339b241fa"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 17 01:29:58 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 17 01:29:58 2017 +0100"
      },
      "message": "Remove useless code from SegWriter.c\n"
    },
    {
      "commit": "d6fcd5fb475f6cbeedb72ccd5bcbfa5339b241fa",
      "tree": "4577349e844f991ee924bcd466d8cec46e67677e",
      "parents": [
        "169c2eccd1d28dbae39e34c4fe1a6e041dd14582"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Feb 08 20:01:08 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 09 16:43:58 2017 +0100"
      },
      "message": "Add \"install\" target to C Makefile\n\nFixes LUCY-319.\n"
    },
    {
      "commit": "169c2eccd1d28dbae39e34c4fe1a6e041dd14582",
      "tree": "4dfc5578e6334a209e81aeb8ebc419ef95e03685",
      "parents": [
        "873f4391b82199ce9cdca9e25c17c2614df3a219"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Feb 08 15:15:11 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Feb 08 15:56:01 2017 +0100"
      },
      "message": "Regenerate charmonizer.c for LargeFiles fix\n"
    },
    {
      "commit": "873f4391b82199ce9cdca9e25c17c2614df3a219",
      "tree": "a0a03935e65c2ee09aa0122afb1fa321c8ae360b",
      "parents": [
        "e2c7d719964cc67c7096f7782ad2783b98162088"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 17:43:53 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 18:11:56 2017 +0100"
      },
      "message": "Fix cross-compiling to MinGW on Unix\n\n\"windows.h\" must be lowercase on case-sensitive file systems.\n"
    },
    {
      "commit": "e2c7d719964cc67c7096f7782ad2783b98162088",
      "tree": "7a616c441433f18bead64fa9e7f95c9db9e499cc",
      "parents": [
        "982fdecda6cb90c780ab00ca680daaeac25e6ba2"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 17:42:29 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 18:11:56 2017 +0100"
      },
      "message": "Add cross-compilation support to configure script\n\nIf the environment variable TARGET_CC is set, configure uses the value\nas target compiler for cross-compiling. For example:\n\n    TARGET_CC\u003dx86_64-w64-mingw32-gcc ./configure\n"
    },
    {
      "commit": "982fdecda6cb90c780ab00ca680daaeac25e6ba2",
      "tree": "f83b36ed17dd4afca58198468e557fac0e704323",
      "parents": [
        "cd3e363e19c6aac5a6680604db21ec493838e8f7"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 17:39:28 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 18:11:37 2017 +0100"
      },
      "message": "Update Charmonizer code\n\n- New compiler version API.\n- CC is set by Charmonizer.\n- Pass --charmonic to cfc (requires to run more probes).\n- Fix warnings.\n"
    },
    {
      "commit": "cd3e363e19c6aac5a6680604db21ec493838e8f7",
      "tree": "96eb503eb24803654d4cbc203be1912b049340c4",
      "parents": [
        "2c43cf0d0922812d5178cc085502a4f09d221905"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 14:51:38 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 14:53:11 2017 +0100"
      },
      "message": "Remove indirection from NumUtil_encode_bigend_* arg\n"
    },
    {
      "commit": "2c43cf0d0922812d5178cc085502a4f09d221905",
      "tree": "7a424554311318eea5a2bb60bf0356ccfa2b4549",
      "parents": [
        "a923dd3858b899e477e9135f1a56c95a23b8797b"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 14:34:07 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 14:53:03 2017 +0100"
      },
      "message": "Optimize NumUtil_encode_bigend_* functions\n\nMake GCC generate bswap instructions. For details see:\n\nhttp://stackoverflow.com/q/36497605\n"
    },
    {
      "commit": "a923dd3858b899e477e9135f1a56c95a23b8797b",
      "tree": "057048b40464db44c4065d41fb8e71b8e4a515ca",
      "parents": [
        "4b541569518665e3974f96f76c493ff05f200a33"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 14:05:44 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 14:52:54 2017 +0100"
      },
      "message": "Stop using endian macros in NumberUtils.cfh\n\nUse an inline function instead. Modern compilers can compute the\nresult at compile time and eliminate the if/else statement.\n"
    },
    {
      "commit": "4b541569518665e3974f96f76c493ff05f200a33",
      "tree": "576343a3c9365e22d59888b06fe998b6c0e2bb4e",
      "parents": [
        "8a37f575d2e2aa640ac930467ad81ec9bc6c3eed"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 13:32:48 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 14:52:46 2017 +0100"
      },
      "message": "Remove U64_TO_DOUBLE macro\n\nIt was only needed for MSVC6.\n"
    },
    {
      "commit": "8a37f575d2e2aa640ac930467ad81ec9bc6c3eed",
      "tree": "6bd8ed07f6c29ea73714027e24c8921506cc6401",
      "parents": [
        "af6e18eb81383367ff24698797e8833f42fd23e0"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Dec 28 20:22:08 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:35:07 2017 +0100"
      },
      "message": "Special case Booleans in Freezer_thaw\n\nNow Freezer_deserialize doesn\u0027t support Booleans anymore but this\nshould be harmless.\n\nFixes LUCY-292.\n"
    },
    {
      "commit": "af6e18eb81383367ff24698797e8833f42fd23e0",
      "tree": "6c127843c4029aa102b9b1166ce71225bce5dfac",
      "parents": [
        "751c3b39d921096884fb4d19a33dba42b215059e"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 24 18:12:01 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:35:05 2017 +0100"
      },
      "message": "Valgrind cleanup\n\nRemove unneeded compiler flags, check for LUCY_VALGRIND environment\nvariable at run time.\n"
    },
    {
      "commit": "751c3b39d921096884fb4d19a33dba42b215059e",
      "tree": "6cba57dd9d9e9a7b83032fbb05acbbeabda627c9",
      "parents": [
        "fc66f673a0671086e0c5ff2ccddd510a1ebc9e22"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 24 17:36:16 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:33:57 2017 +0100"
      },
      "message": "Get_Searchers accessor for PolySearcher\n\nFixes LUCY-255.\n"
    },
    {
      "commit": "fc66f673a0671086e0c5ff2ccddd510a1ebc9e22",
      "tree": "1b9e499737f25654924a9db4776f98bd0e16499c",
      "parents": [
        "2b905009e69fccfc8abe62cfe7814565f15beab5"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 24 17:31:19 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:33:57 2017 +0100"
      },
      "message": "Port PolySearcher tests to C\n"
    },
    {
      "commit": "2b905009e69fccfc8abe62cfe7814565f15beab5",
      "tree": "21a9c6e95fa4ccae87f3931d44a0031be8a372d8",
      "parents": [
        "3dfb22cd9c0b4298599859db760600390c79c21a"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 24 16:13:26 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:33:57 2017 +0100"
      },
      "message": "Add TestUtils_create_index\n"
    },
    {
      "commit": "3dfb22cd9c0b4298599859db760600390c79c21a",
      "tree": "7639d421a8eb3a845854b1fd8eed88e27f3c3116",
      "parents": [
        "c037045cdc9408e950e8cf23c21e1cd7bb9e695c"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 24 16:11:16 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:33:57 2017 +0100"
      },
      "message": "Minor test fixes\n"
    },
    {
      "commit": "c037045cdc9408e950e8cf23c21e1cd7bb9e695c",
      "tree": "b750b3aafe55288e8fbc84f4d4ca5fe3bf9e7ee6",
      "parents": [
        "70f322105cf0ed8a757422c4c06888c9b899fa41"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 24 14:37:13 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:33:57 2017 +0100"
      },
      "message": "Allow automated parallel tests\n"
    },
    {
      "commit": "70f322105cf0ed8a757422c4c06888c9b899fa41",
      "tree": "7dbb91c56a8af260bbd8254adda1316ab76fced3",
      "parents": [
        "33f9460eab874687ce3ffdfdee20ee04fa1b56a0"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 24 14:29:03 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:33:57 2017 +0100"
      },
      "message": "Stop creating test working dir\n"
    },
    {
      "commit": "33f9460eab874687ce3ffdfdee20ee04fa1b56a0",
      "tree": "c31f7f1c1b453b52ffe3a1afaba0548986c67844",
      "parents": [
        "a2247002411563c7121bdda5388f61c798c2c329"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 24 14:26:09 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:33:57 2017 +0100"
      },
      "message": "Stop creating persistent uscon index\n"
    },
    {
      "commit": "a2247002411563c7121bdda5388f61c798c2c329",
      "tree": "a4a89f96e5fafae736165a07ef1a2fb5dc8f3299",
      "parents": [
        "5967a20ddc45474291261181e25ec7378414470b"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 24 14:17:33 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:33:56 2017 +0100"
      },
      "message": "Use custom tempfile in t/025-debug.t\n\nStop using the test \"working dir\".\n"
    },
    {
      "commit": "5967a20ddc45474291261181e25ec7378414470b",
      "tree": "3cee25d382b8832c9eca634e2f712975ee82e38a",
      "parents": [
        "355da9a659b17fbe245c614014b599526a3f086c"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 24 01:32:59 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:33:56 2017 +0100"
      },
      "message": "Parallel test support for init_test_index_loc\n\nUse File::Temp to create a temporary directory in \u0027t\u0027 that will be\ncleaned up at exit. A side effect is that the directory won\u0027t be\nremoved if the test crashes.\n"
    },
    {
      "commit": "355da9a659b17fbe245c614014b599526a3f086c",
      "tree": "5b36afb05491df9bdc081ed6906f4b11b2beaff1",
      "parents": [
        "df92734893823ff0d917ba582586100579f17163"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 24 15:18:25 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:33:56 2017 +0100"
      },
      "message": "Skip more 025-debug tests on Windows\n\nRedirecting stderr doesn\u0027t seem to work. Also fix skip count.\n"
    },
    {
      "commit": "df92734893823ff0d917ba582586100579f17163",
      "tree": "a76c0c6a16df75f1531c549d4f942bbb7c147363",
      "parents": [
        "a876a98dc003f6e33956491118ce34429b55a5c0"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:16:19 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jan 02 16:33:33 2017 +0100"
      },
      "message": "Fix and enable LUCY_DEBUG under MSVC\n\nSwitch to ISO variadic macros.\n"
    },
    {
      "commit": "a876a98dc003f6e33956491118ce34429b55a5c0",
      "tree": "288705f3f98e2de06067b473074c4defec90ba65",
      "parents": [
        "470bb27deac5028f290fb6f24b9bf33c8f0d551a"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 24 14:07:31 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 24 14:38:47 2016 +0100"
      },
      "message": "Fix Lucy::Util::Debug Perl module\n\nIt wasn\u0027t enabled when setting the LUCY_DEBUG environment variable.\n"
    },
    {
      "commit": "470bb27deac5028f290fb6f24b9bf33c8f0d551a",
      "tree": "ea90b51cc35290ee1f340af2d16566c78b6aacd9",
      "parents": [
        "61fd0da377db365f3f8cb0c61e0d2cb6cbcf8309"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Dec 13 16:21:24 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Dec 13 16:23:47 2016 +0100"
      },
      "message": "Fix svnmucc command in release_commands.pl\n\nThe svnmucc release command was broken by a recent svn update. It\ndoesn\u0027t seem to be possible to move files and remove the old parent\ndirectory in a single step. See\n\n    https://issues.apache.org/jira/browse/SVN-4579.\n\nFixes LUCY-308.\n"
    },
    {
      "commit": "61fd0da377db365f3f8cb0c61e0d2cb6cbcf8309",
      "tree": "d3b2ea61f7813ba5cf7191de38c8653b69e6c25e",
      "parents": [
        "f88e30832a6781491f52aa06979d167572296a92"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 10 17:23:45 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Dec 10 17:23:45 2016 +0100"
      },
      "message": "Fix links in FileLocking.md\n"
    },
    {
      "commit": "f88e30832a6781491f52aa06979d167572296a92",
      "tree": "f7d7294c8796b7a6837876dea2e774948b1570cd",
      "parents": [
        "3c97420f70f92c0f5a9cdf3cee707e5cfa9a98b4"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Dec 07 16:44:02 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Dec 07 17:16:12 2016 +0100"
      },
      "message": "Fix IndexManager with many small segments\n\nIxManager_Choose_Sparse would throw when handling more than about 40\nsegments because of the integer overflow test in S_fibonacci.\n\nAlso, the naive recursive implementation of S_fibonacci had abysmal\nperformance. After all, the result was created by adding only 0s and\n1s. The number of calls to S_fibonacci when computing fib(n) was\nfib(n+1), resulting in more than a billion of iterations with n ~ 45.\nOn my (heavily loaded and low-end) test machine, Choose_Sparse could\ntake up to 40 seconds to complete.\n\nOn the positive side, if anyone was hit by this performance problem,\nit\u0027s likely they also saw the \"index n too large\" exception and we\nonly had two reports so far.\n\nUse a precomputed lookup table and fix the test for large values of n.\n\nFixes LUCY-318.\n"
    },
    {
      "commit": "3c97420f70f92c0f5a9cdf3cee707e5cfa9a98b4",
      "tree": "35c343c0a570b66b2e9624de01c8cda79ffed657",
      "parents": [
        "355a13d9870b44d32438dd690f317bf9628e5382"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Nov 30 20:19:36 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Dec 02 20:15:39 2016 +0100"
      },
      "message": "Ignore exceptions in SearchClient dtor\n\nFixes LUCY-286.\n"
    },
    {
      "commit": "355a13d9870b44d32438dd690f317bf9628e5382",
      "tree": "4b0413e4a2d05d430cb5890d28f33ad590153eef",
      "parents": [
        "a8f7e9c6076652c31013d2d2523bcd236c4a9526"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Nov 30 20:15:59 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Dec 02 20:15:32 2016 +0100"
      },
      "message": "Ignore CPAN Testers forcing parallel tests\n\nParallel tests are known to fail (LUCY-260).\n"
    },
    {
      "commit": "a8f7e9c6076652c31013d2d2523bcd236c4a9526",
      "tree": "6846dd08fda8db5f229012105444b217ad251e10",
      "parents": [
        "6513de06954cd41f99345bde513cf6ce6faed078"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Nov 29 10:54:26 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Dec 02 20:15:22 2016 +0100"
      },
      "message": "Remove ELAST from ErrorMessage\n\nELAST isn\u0027t an actual error code and causes conflicts.\n\nFixes LUCY-317.\n"
    },
    {
      "commit": "6513de06954cd41f99345bde513cf6ce6faed078",
      "tree": "2dbe780c6abd7896f916abf0ba8a0219131a9847",
      "parents": [
        "710159091b19149088cc77147006730f31931a25"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Nov 24 15:31:14 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Dec 02 20:15:14 2016 +0100"
      },
      "message": "Support X.Y.Z.D Perl versions\n"
    },
    {
      "commit": "710159091b19149088cc77147006730f31931a25",
      "tree": "0afea39eb5f978c824ad316262b33d61aa378eab",
      "parents": [
        "05fc61872fefde7d88348009d3d2ef6a06b3ba10"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Nov 24 15:05:39 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Dec 02 20:15:07 2016 +0100"
      },
      "message": "Rework PAUSE exclusions\n\nRemove class lists in Lucy::Redacted and `_gen_pause_exclusion_list`.\nThe generated `no_index` section was essentially ineffective, because\nit was overridden by the auto-generated `provides` section. It was\nalso cluttered with files that wouldn\u0027t be indexed anyway.\n\nAdd `no_index` section manually in Build.PL. Since version 0.40_11,\nthis stops Module::Build from creating a `provides` section in the\nCPAN META files. Add directories `sample` and `devel` to `no_index`\nin order to stop MetaCPAN from indexing their contents.\n\nRemove the custom `distmeta` action which checked version numbers in\n.pm files and relied on the `provides` section being generated.\n\nPart of LUCY-313.\n"
    },
    {
      "commit": "05fc61872fefde7d88348009d3d2ef6a06b3ba10",
      "tree": "86df37239803eaa5863304a5265841c10e65a1d7",
      "parents": [
        "62cdcf930dc871fb95b5c99fc86e93afe7a3e344"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Nov 23 16:17:06 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Nov 23 16:18:34 2016 +0100"
      },
      "message": "Document that Hits#Next returns a HitDoc\n"
    },
    {
      "commit": "62cdcf930dc871fb95b5c99fc86e93afe7a3e344",
      "tree": "52f1ffe21eec97b82d93d390d1d36c8b499450b6",
      "parents": [
        "87ea1b4d195196611333f1148e1f4dce2166c2e4"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Oct 19 13:29:58 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Oct 19 13:48:56 2016 +0200"
      },
      "message": "Fix memory leak in HitQueue\n\nHitQueue would leak a FieldType if the last SortRule was of type\nFIELD. This wasn\u0027t discovered by our test suite because we always\nbreak ties by DOC_ID.\n\nThanks to Serkan Mulayim for the report.\n\nFixes LUCY-315.\n"
    },
    {
      "commit": "87ea1b4d195196611333f1148e1f4dce2166c2e4",
      "tree": "97be2387249802eac924a64471b3f5350af0d90e",
      "parents": [
        "e30057d752652fb52be7e45949c8778ddfbeaf7b"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Oct 08 16:16:48 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Oct 19 13:48:56 2016 +0200"
      },
      "message": "Stop using strerror\n\nEspecially with non-English locales, \u0027strerror\u0027 can return strings in\narbitrary encodings. Now that CB_VCatF has more thorough UTF-8 checks,\nthis can result in unwanted exceptions.\n\n\u0027strerror\u0027 also isn\u0027t thread-safe.\n\nAdd some utility functions to set the global error object, optionally\nfollowed by a textual representation of the error in \u0027errno\u0027 or\nreturned by \u0027GetLastError\u0027 on Windows. Convert \u0027errno\u0027 values using\ncustom messages for all \u0027errno\u0027 macros from current Linux and Darwin\nkernels.\n\nAlso make some error messages more informative by adding the reason\nfor the error, e.g. in FSDH_do_open which may fail when opening an\nindex.\n\nFixes LUCY-311.\n"
    },
    {
      "commit": "e30057d752652fb52be7e45949c8778ddfbeaf7b",
      "tree": "ce3b66511662580c5bcbe2322b720a5a01b65ab0",
      "parents": [
        "0959ad9d3ffa474396059268e431fa43daa9a1c4"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Oct 03 15:03:15 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Oct 03 15:03:15 2016 +0200"
      },
      "message": "Change tag names in release_commands.pl\n"
    },
    {
      "commit": "0959ad9d3ffa474396059268e431fa43daa9a1c4",
      "tree": "3f2f25263fe9c12bf6fb54ec0fbd9096f1cbac55",
      "parents": [
        "26d3c773fc2784ef6f45eac622e4d99af63a5476"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Sep 30 17:16:58 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Sep 30 17:32:56 2016 +0200"
      },
      "message": "Try several ports in remote searcher tests\n\nFixes LUCY-312.\n"
    },
    {
      "commit": "26d3c773fc2784ef6f45eac622e4d99af63a5476",
      "tree": "ac012fc5525963d2bd0961b6e496c6b16719a9c0",
      "parents": [
        "8576b74184a4bcfe3c1e6be37ce53a8fde8deacb"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Sep 29 16:29:11 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Sep 29 16:29:11 2016 +0200"
      },
      "message": "Regenerate charmonizer.c for pattern rules fix\n\nFixes LUCY-309.\n"
    },
    {
      "commit": "8576b74184a4bcfe3c1e6be37ce53a8fde8deacb",
      "tree": "7afad34a2c7c7eda115d67ce13ebaf664d5a01c3",
      "parents": [
        "94d52202bdc3990ce8335c8dcdbe12a6196406a0"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Sep 29 15:08:05 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Sep 29 15:08:05 2016 +0200"
      },
      "message": "Exclude Lucy/Test.xs from CPAN tarball\n\nFixes LUCY-310.\n"
    },
    {
      "commit": "94d52202bdc3990ce8335c8dcdbe12a6196406a0",
      "tree": "d6fccad2d8aa8be3f92c84dc8b32ea342035c56e",
      "parents": [
        "787a2ecbd2b60fe51451177f7e0ab9a26e6782c1"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Sep 24 15:04:23 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Sep 24 15:04:23 2016 +0200"
      },
      "message": "Update release date for 0.6.0 release\n"
    },
    {
      "commit": "787a2ecbd2b60fe51451177f7e0ab9a26e6782c1",
      "tree": "2ea17d9f24e0a9165261f7cd66daa46f8082abe2",
      "parents": [
        "020aa63217c54ac43e4ef19409d1917e3b961ce1"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Sep 24 15:03:28 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Sep 24 15:03:28 2016 +0200"
      },
      "message": "Update version number for 0.6.0 release\n"
    },
    {
      "commit": "020aa63217c54ac43e4ef19409d1917e3b961ce1",
      "tree": "3642ab9c718c53f1c4a3062c8c044a502705aab8",
      "parents": [
        "f1c0f2201988e288240dfde8e073cc7bd717014c"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Sep 24 15:00:47 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Sep 24 15:01:44 2016 +0200"
      },
      "message": "Update update_version script\n"
    },
    {
      "commit": "f1c0f2201988e288240dfde8e073cc7bd717014c",
      "tree": "d4e6853bfb7c290b37fe3aad6e10ff13818efdf1",
      "parents": [
        "489d7fcc0d2eb362a32194f7f06f7fd91af79d02"
      ],
      "author": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Sep 14 17:18:45 2016 -0700"
      },
      "committer": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Sep 14 17:18:45 2016 -0700"
      },
      "message": "Add CHANGES for 0.6.0.\n"
    },
    {
      "commit": "489d7fcc0d2eb362a32194f7f06f7fd91af79d02",
      "tree": "636c17f5dba37cad9aed8c039bfa30feef8e4382",
      "parents": [
        "6c25611a104e15b4fc2b42b605ec95bf33d0d9da"
      ],
      "author": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Sep 14 17:17:25 2016 -0700"
      },
      "committer": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Sep 14 17:17:25 2016 -0700"
      },
      "message": "Merge CHANGES for 0.5.x.\n"
    },
    {
      "commit": "6c25611a104e15b4fc2b42b605ec95bf33d0d9da",
      "tree": "301b80e26aad0584b02d58c92cd83d38cdea8d36",
      "parents": [
        "dd30ae94a677aba8f683254c79c29dc6d12651fd"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 18:49:14 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 18:49:14 2016 +0200"
      },
      "message": "Update rat-excludes\n"
    },
    {
      "commit": "dd30ae94a677aba8f683254c79c29dc6d12651fd",
      "tree": "13017967e25b61ddc8f06ee004150064304c3189",
      "parents": [
        "5b1bedbe71bfe456cecd5c415950594d68ed7ea8"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 17:40:51 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 17:46:20 2016 +0200"
      },
      "message": "Fix charmonizer memory leaks\n"
    },
    {
      "commit": "5b1bedbe71bfe456cecd5c415950594d68ed7ea8",
      "tree": "d5768ddaa8a7bdf85314e181ec24fa9200dceb46",
      "parents": [
        "a3a42c006bb0d539fe9924cf8c66c787092c524e"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 17:40:09 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 17:46:11 2016 +0200"
      },
      "message": "Update valgrind suppressions\n"
    },
    {
      "commit": "a3a42c006bb0d539fe9924cf8c66c787092c524e",
      "tree": "6580424b7e856792ca7ea3f7a5980f10a009d0f0",
      "parents": [
        "7071a277cfc2be26fb5eb4e46b5fecbc715eecaf"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 17:54:36 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 17:54:36 2016 +0200"
      },
      "message": "Change Clownfish C library name\n\nThe Clownfish C library is now named libclownfish.\n"
    },
    {
      "commit": "7071a277cfc2be26fb5eb4e46b5fecbc715eecaf",
      "tree": "531389cd361883336aca61d2d377faefe343eee0",
      "parents": [
        "0a41b29b1b655cf5e1d59462eb5e51478cc98c38",
        "aa48a9e68c2dd51a7c4391cab1bcd5f77bb39d8a"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 16:41:19 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 16:41:19 2016 +0200"
      },
      "message": "Merge branch \u0027string-helpers\u0027\n\nSee CLOWNFISH-76.\n"
    },
    {
      "commit": "aa48a9e68c2dd51a7c4391cab1bcd5f77bb39d8a",
      "tree": "531389cd361883336aca61d2d377faefe343eee0",
      "parents": [
        "f257a45e0c73cc5875b8f6e3a66ba4eff2e84ae5"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Aug 02 19:33:01 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Aug 02 19:57:01 2016 +0200"
      },
      "message": "Move StringHelper from Clownfish to Lucy\n"
    },
    {
      "commit": "f257a45e0c73cc5875b8f6e3a66ba4eff2e84ae5",
      "tree": "20ab6712a1cd36c6f990dd96ae2aa8a6b329b34a",
      "parents": [
        "3cc039724fa1862aa71333911f2bfc5c84b50f3e"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Aug 02 18:54:24 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Aug 02 18:54:24 2016 +0200"
      },
      "message": "Move some functions from StrHelp to Str\n"
    },
    {
      "commit": "3cc039724fa1862aa71333911f2bfc5c84b50f3e",
      "tree": "58d6ba5d0e1505a1206d59616102e806bbe9912e",
      "parents": [
        "0a41b29b1b655cf5e1d59462eb5e51478cc98c38"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Aug 02 16:58:43 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Aug 02 17:07:30 2016 +0200"
      },
      "message": "Use CharBuf to unescape JSON strings\n\nAlso use a stricter custom decoder for hex escapes. (strtol allows\nleading whitespace and plus signs.)\n"
    },
    {
      "commit": "0a41b29b1b655cf5e1d59462eb5e51478cc98c38",
      "tree": "28ffca7a9a4a75d678b8f351bed0d65ff063dd59",
      "parents": [
        "d55cf2db5c13a09ac6b8058254e8cddba0f80c1f"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Jul 20 13:19:19 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Aug 01 13:13:58 2016 +0200"
      },
      "message": "Simplify build code after Clownfish changes\n\n- Remove inherit_metadata hack.\n- Remove xs_prereqs.\n"
    },
    {
      "commit": "d55cf2db5c13a09ac6b8058254e8cddba0f80c1f",
      "tree": "680af88bb4e118f188f3cdd38b909d88385ef1df",
      "parents": [
        "6759c8bdebc4c421f2243b027960fab08c42bc23"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Jul 28 14:43:04 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Jul 28 15:00:22 2016 +0200"
      },
      "message": "Add sort_spec param to Simple_Search\n\nThe sort_spec parameter was lost when porting Lucy::Simple to C.\n\nFixes LUCY-307.\n"
    },
    {
      "commit": "6759c8bdebc4c421f2243b027960fab08c42bc23",
      "tree": "6f5b6da804dcc2d12e9e58f7fdd3c385427df69f",
      "parents": [
        "03b8995dccbf988e53ba52a72088495c1608265b"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 22 15:50:41 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 22 15:50:41 2016 +0200"
      },
      "message": "Add Lucy::Test to INSTALL.SKIP\n"
    },
    {
      "commit": "03b8995dccbf988e53ba52a72088495c1608265b",
      "tree": "0167bebfb3a9418bbbaf3dfdbfc40c4bd9ff6523",
      "parents": [
        "90c7b471178bbc21216e3dff7d4b1c62bba53d26"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 22 14:30:24 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 22 14:30:24 2016 +0200"
      },
      "message": "Update .cfp files after Clownfish changes\n\nAdd \"major_version\" and \"installed\" properties.\n"
    },
    {
      "commit": "90c7b471178bbc21216e3dff7d4b1c62bba53d26",
      "tree": "93fc95e5551d21bd8f7d3db0ee576b70fc80ee89",
      "parents": [
        "e0833028bb5ac545ca5ea5f087521ff5cf70788f"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 15 21:53:51 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 15 21:53:51 2016 +0200"
      },
      "message": "Update lemon\n\n- Update lemon.c to 09a96bed from 2016-05-24.\n- Update lempar.c to 57ffa985 from 2016-07-12.\n"
    },
    {
      "commit": "e0833028bb5ac545ca5ea5f087521ff5cf70788f",
      "tree": "1221375d88ec433f312b18f3a8be54a0306afc5b",
      "parents": [
        "dd760b3439acb42516e14ba8475179ac1da0a428"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 15 21:52:28 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 15 21:52:28 2016 +0200"
      },
      "message": "Compile lemon without extra compiler flags\n\nAvoids compilation problems on Windows.\n"
    },
    {
      "commit": "dd760b3439acb42516e14ba8475179ac1da0a428",
      "tree": "c959bb5868266d31e9509a29eab9399655002b56",
      "parents": [
        "c0e4d81d8ce4d4dc928d9f641321c8f8d7b78223",
        "eb64f820cd0432908f2c629481ab604e311c4756"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 15 13:10:10 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 15 13:10:10 2016 +0200"
      },
      "message": "Merge branch \u0027separate-tests\u0027\n"
    },
    {
      "commit": "eb64f820cd0432908f2c629481ab604e311c4756",
      "tree": "c959bb5868266d31e9509a29eab9399655002b56",
      "parents": [
        "bb7ae3b6669e8b00ae6a337df5f43044eca5e9b9"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jul 11 14:32:08 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jul 11 15:07:59 2016 +0200"
      },
      "message": "Make sure not to add JsonParser.c twice\n\nFix Makefile in case JsonParser.c already exists.\n"
    },
    {
      "commit": "bb7ae3b6669e8b00ae6a337df5f43044eca5e9b9",
      "tree": "70bccbca6beeae92303d26efca9738ab8944b88d",
      "parents": [
        "b57bd0af86eafbf3f3749b06b72822a58f881f8e"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 08 19:04:44 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jul 11 15:07:59 2016 +0200"
      },
      "message": "Build separate Perl binaries with make\n"
    },
    {
      "commit": "b57bd0af86eafbf3f3749b06b72822a58f881f8e",
      "tree": "b694c62643d8c1d6c0359033aecf3a41de77c0d1",
      "parents": [
        "c1ac59aa73240ab36985faf83f8d58103a382f76"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 08 18:09:31 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jul 11 14:55:45 2016 +0200"
      },
      "message": "Rename core directory to \"cfcore\" for CPAN tarball\n"
    },
    {
      "commit": "c1ac59aa73240ab36985faf83f8d58103a382f76",
      "tree": "00a4c2e20fa3fc82ea0fa37443e7e0c4c621a9e5",
      "parents": [
        "bdf9ac404628369185b87767a421a3c8eb745661"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 08 16:36:44 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jul 11 14:55:40 2016 +0200"
      },
      "message": "Separate test binaries\n"
    },
    {
      "commit": "bdf9ac404628369185b87767a421a3c8eb745661",
      "tree": "5370a48b6e475115b60e7a0b919cdea28e9bbf74",
      "parents": [
        "572d35647c881f0ba8a9b034f49240f0f7193c16"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 08 17:51:12 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Jul 08 17:53:40 2016 +0200"
      },
      "message": "Don\u0027t access ivars in tests\n\nAdd some helper methods for tests.\n"
    }
  ],
  "next": "572d35647c881f0ba8a9b034f49240f0f7193c16"
}
