)]}'
{
  "log": [
    {
      "commit": "a713a7aad069f4363bca815adc1d64bd2f13a7bd",
      "tree": "a215349fc6ff4001ca962a9e1b8aea81d4036665",
      "parents": [
        "137f74977d7acc0d5314485eab1bdd537ffde71d",
        "97e6c4d20f8eaf4bf792c04b768a4f06861f3644"
      ],
      "author": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Feb 14 18:58:40 2018 -0800"
      },
      "committer": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Feb 14 18:58:40 2018 -0800"
      },
      "message": "Merge branch \u0027go_caller_filepath\u0027\n"
    },
    {
      "commit": "97e6c4d20f8eaf4bf792c04b768a4f06861f3644",
      "tree": "a215349fc6ff4001ca962a9e1b8aea81d4036665",
      "parents": [
        "137f74977d7acc0d5314485eab1bdd537ffde71d"
      ],
      "author": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Feb 14 18:57:18 2018 -0800"
      },
      "committer": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Feb 14 18:57:18 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": "137f74977d7acc0d5314485eab1bdd537ffde71d",
      "tree": "bd1020e73161a82f890f597983adf6e633422bb4",
      "parents": [
        "147e90e91bbaeafa9d886bf1a1ec02cf68a551b8"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 08 13:54:07 2018 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 08 13:54:07 2018 +0100"
      },
      "message": "Fix -Wclobbered warnings\n"
    },
    {
      "commit": "147e90e91bbaeafa9d886bf1a1ec02cf68a551b8",
      "tree": "7732e1ebb57f11db59b54f7eab71b15b815ebc31",
      "parents": [
        "15e36c4f7fddb31db54ff7f1c4eeefe859f910ff"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 08 13:25:51 2018 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 08 13:32:53 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": "15e36c4f7fddb31db54ff7f1c4eeefe859f910ff",
      "tree": "e8f43461b50246beeef30441f61097f5951a5fe8",
      "parents": [
        "7238ced291cd7e393a7e4ce60995e30bf04a4c03"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Nov 24 14:53:11 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Nov 24 15:17:40 2017 +0100"
      },
      "message": "Disable thread support under Perl 5.8\n\nWe got some mysterious CPAN Testers failures with several 5.8 releases\nwhen calling Err_get_error from a thread. Disable thread support under\nPerl 5.8, even if 5.8.9 seems to work. (Note that version 5.10.0 has\nalready been blacklisted.)\n\nhttp://matrix.cpantesters.org/?dist\u003dClownfish+0.6.2\nhttp://www.cpantesters.org/cpan/report/4c2e4fd2-cf8c-11e7-b8bd-809199b835e7\nhttp://www.cpantesters.org/cpan/report/a93c273a-cf8c-11e7-b8bd-809199b835e7\n"
    },
    {
      "commit": "7238ced291cd7e393a7e4ce60995e30bf04a4c03",
      "tree": "0b2693cdf900b7e42e2118d5316436dcf295428c",
      "parents": [
        "e96564cdb861f6886375b204261c8911841496c4"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Nov 24 14:43:28 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Nov 24 15:17:31 2017 +0100"
      },
      "message": "Fix Perl build if \".\" is not in @INC\n\nPerl 5.26 doesn\u0027t put \".\" in @INC anymore. Add \".\" to a localized @INC\nwhen loading Charmony.pm and the binding .pm files.\n\nFixes CLOWNFISH-119.\n"
    },
    {
      "commit": "e96564cdb861f6886375b204261c8911841496c4",
      "tree": "fd8a9710736bd516add1ec8829a0f08ee188395e",
      "parents": [
        "120ece10e6bb414607a594cbafd398b4fc49a3a9"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Nov 14 15:09:14 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Nov 14 15:09:41 2017 +0100"
      },
      "message": "Add sha512 explicit algorithm to file extension\n"
    },
    {
      "commit": "120ece10e6bb414607a594cbafd398b4fc49a3a9",
      "tree": "769ad3a5fe60ac216e4d3da9fd35c40c49266d8f",
      "parents": [
        "f30ed78acd52df8425914b618430fe8816f226c8"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Nov 14 14:09:06 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Nov 14 15:04:25 2017 +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": "f30ed78acd52df8425914b618430fe8816f226c8",
      "tree": "fe6339a56c0f00b0aa1aa48446f76b3396cd31fe",
      "parents": [
        "3b8ace37815308cad216f6fde964e5a8b2506e14"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Oct 27 15:03:40 2017 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Nov 14 13:43:19 2017 +0100"
      },
      "message": "Prepare for CV-in-stash optimization in Perl 5.28.\n\nPerl 5.28 will start to store subroutines in stashes as coderefs.\n\nSee\n\n    https://rt.perl.org/Public/Bug/Display.html?id\u003d129916\n    https://rt.perl.org/Public/Bug/Display.html?id\u003d132252\n    https://perl5.git.perl.org/perl.git/commitdiff/7d65f652cb\n"
    },
    {
      "commit": "3b8ace37815308cad216f6fde964e5a8b2506e14",
      "tree": "53251f2593a19310c3907396e74bcff3857d4794",
      "parents": [
        "74c12c7ef8a3a3d66d959c8a3b9f8b30efc61b77"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Apr 22 17:54:37 2017 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Apr 22 17:54:37 2017 +0200"
      },
      "message": "Normalize bools before passing them to Perl\n"
    },
    {
      "commit": "74c12c7ef8a3a3d66d959c8a3b9f8b30efc61b77",
      "tree": "d43141aa7e38b14831dd706aca68506bebc9c904",
      "parents": [
        "0bfeb23eccec3519d2bf72126c5c9aea7464c4c8"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Mar 24 14:48:46 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Apr 16 12:17:19 2017 +0200"
      },
      "message": "Don\u0027t create callbacks for excluded methods\n\nIdeally, there should be a way to only omit the callback function\ndefinition in order to allow custom implementations.\n"
    },
    {
      "commit": "0bfeb23eccec3519d2bf72126c5c9aea7464c4c8",
      "tree": "e0560e0a246bedfbad5ab00d5a97d63baa655730",
      "parents": [
        "d601b8b8b9736b7f0868d8881dcc3e8dc9862a4f"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Mar 06 13:26:59 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Mar 18 20:57:21 2017 +0100"
      },
      "message": "Allow Perl subclasses to use hashrefs\n\nIf a parent class without ivars is subclassed from Perl, don\u0027t store\nthe pointer to the Clownfish object in the SV, but use a hashref as\nunderlying Perl object. This allows Perl subclasses to store their own\nivars directly in the hashref without having to resort to inside-out\nobjects.\n\nThis requires to create a host object wrapper whenever an object is\nconstructed or a Clownfish method is invoked. A similar approach can\nbe used by other host languages without class-based inheritance.\n\nThe perl_to_cfish functions now use Class_fetch and an is_a check based\non the Clownfish parent class pointer instead of calling sv_derived_from.\nI haven\u0027t checked whether there\u0027s a performance impact, but this might\nactually be faster than the old code.\n\nThe old inside-out approach is still supported by overloading scalar\ndereferencing for host object wrappers.\n"
    },
    {
      "commit": "d601b8b8b9736b7f0868d8881dcc3e8dc9862a4f",
      "tree": "be449c7b8e7d2f3f03e544392d67e313c87b8825",
      "parents": [
        "ab9d38830c696c9ec4169c40c79efbdcd343948c",
        "bea2a98f994e2a2f5d7cfe1dee1f957d3bb8042e"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Mar 18 19:08:29 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Mar 18 19:08:29 2017 +0100"
      },
      "message": "Merge branch \u0027cfc-parcel\u0027\n"
    },
    {
      "commit": "ab9d38830c696c9ec4169c40c79efbdcd343948c",
      "tree": "6ee78b5c7c8cc8333811ba93ab362cfb73ec91ee",
      "parents": [
        "0e8aa921a2563e7bcf39c79617034f156f41db52"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Mar 07 19:17:16 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 09 22:22:12 2017 +0100"
      },
      "message": "Fix global destruction check again\n\nThe best we can do is to check for PL_dirty and the refcount.\n"
    },
    {
      "commit": "bea2a98f994e2a2f5d7cfe1dee1f957d3bb8042e",
      "tree": "6bb6563f9ce92f5f740c37002a10878273ae9e58",
      "parents": [
        "821bf0d0b8c31609ebbc54949f8262ef38393e3a"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Feb 28 16:42:08 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:05 2017 +0100"
      },
      "message": "Switch some code over to CFCClass_in_parcel\n"
    },
    {
      "commit": "821bf0d0b8c31609ebbc54949f8262ef38393e3a",
      "tree": "434ff38d69575da7235c35dadfb0c002e7772da0",
      "parents": [
        "8fbf9c960b0bcfccedf15a83e6bb7ae1191e2e24"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Feb 28 16:41:14 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:05 2017 +0100"
      },
      "message": "Simplify CFCBindMeth_method_def\n\nRemove unneeded static functions.\n"
    },
    {
      "commit": "8fbf9c960b0bcfccedf15a83e6bb7ae1191e2e24",
      "tree": "32e4f873b2f14f325b5df04dee641036786154d7",
      "parents": [
        "859f5b88cde34e65e563d8a5d7b48a5586230eaa"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Feb 28 15:18:21 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:05 2017 +0100"
      },
      "message": "Remove classes array from CFCHierarchy\n\nReplaced by class array in CFCParcel.\n"
    },
    {
      "commit": "859f5b88cde34e65e563d8a5d7b48a5586230eaa",
      "tree": "640aff446a3e94b60b65b9a6a155ff50924ee217",
      "parents": [
        "a3231bcc2fa05743b8b82c94a04f0df30bf06d97"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Feb 28 14:49:02 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:05 2017 +0100"
      },
      "message": "Stop tracking parcels that are inherited from\n\nThis code was unused. The original idea was to allow circular\ndependencies between parcels as long as they don\u0027t inherit classes\nfrom each other. This is an unimportant feature that had to be solved\ndifferently, now that we specify prereqs in .cfp files.\n"
    },
    {
      "commit": "a3231bcc2fa05743b8b82c94a04f0df30bf06d97",
      "tree": "808b9b8831e49bb3e5ca3767792a176409304b02",
      "parents": [
        "682278c45ec3f72ace0412317c5e68b16032ec0a"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Feb 28 14:11:25 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:05 2017 +0100"
      },
      "message": "Rework setup of parent/child relationship\n\nSet up parent/child relationship of classes in CFCParcel. Connect and\nsort classes in a single function.\n\nMake sure that prereq parcels are registered first.\n"
    },
    {
      "commit": "682278c45ec3f72ace0412317c5e68b16032ec0a",
      "tree": "9d9de05ab6524d331dbf388dcdf33627c66f36a9",
      "parents": [
        "81cdda1a5257b27c9f652f54a2e989f18394b150"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Feb 28 00:45:46 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:04 2017 +0100"
      },
      "message": "Remove global class registry\n\nReplaced by the class array in CFCParcel.\n"
    },
    {
      "commit": "81cdda1a5257b27c9f652f54a2e989f18394b150",
      "tree": "841c5d5468ba6d8449473dad43b894571305659b",
      "parents": [
        "a0e051a0d15658574482b24d328e326c8389670c"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 27 23:46:41 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:04 2017 +0100"
      },
      "message": "Rework URI resolution\n\nAdd CFCMethod_get_docucomment to get inherited CFCDocuComment.\n\nUse correct base class when resolving URIs. Only search parcel and\nprereqs for full struct symbols. Also search prereqs for short struct\nsymbols. Search all source parcels and their prereqs for standalone .md\ndocuments.\n\nMinor cleanups.\n"
    },
    {
      "commit": "a0e051a0d15658574482b24d328e326c8389670c",
      "tree": "821a8d7e9371c88090691b1dea9030d90f6a1656",
      "parents": [
        "1ff6ed0f9ce59fce928d03f0807c47fc57fd501a"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Mar 01 14:52:23 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:04 2017 +0100"
      },
      "message": "Store CFCClass pointer in CFCMethod\n\nStore a weak pointer to the class containing the method.\n"
    },
    {
      "commit": "1ff6ed0f9ce59fce928d03f0807c47fc57fd501a",
      "tree": "7b12b6f9c7a779f5697f3e9db851b9a69ad19693",
      "parents": [
        "850d69bfff9f64dbf1a6a9929639b05bf9cc0fc7"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Mar 01 14:01:40 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:03 2017 +0100"
      },
      "message": "Store CFCClass pointer in parser state\n\nStore a CFCClass pointer instead of the class name.\n"
    },
    {
      "commit": "850d69bfff9f64dbf1a6a9929639b05bf9cc0fc7",
      "tree": "20f1c033f51ca4bc272f46bee89f2f7351f0e399",
      "parents": [
        "c502223ab7e3c70529352afb42973c9d77e88805"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 27 19:45:52 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:03 2017 +0100"
      },
      "message": "Add CFCType_get_class\n\nStore a weak pointer to CFCClass in CFCType for object types.\n"
    },
    {
      "commit": "c502223ab7e3c70529352afb42973c9d77e88805",
      "tree": "2a9e7996b1764ec242b468b910401ad82c83149d",
      "parents": [
        "8971263683dfdf730873ebec50235db5bb895995"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 27 18:53:58 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:03 2017 +0100"
      },
      "message": "Add CFCParcel_class functions\n\nSearch classes in a parcel by name or struct symbol.\n\nIn most cases, it\u0027s important to only search classes in a parcel or\nits direct prerequisites. Otherwise, classes from random other parcels\ncould be picked up.\n"
    },
    {
      "commit": "8971263683dfdf730873ebec50235db5bb895995",
      "tree": "b22eb4f2e5a8a41903bff1555a45d85b5684d352",
      "parents": [
        "e82ee761678b6c60730a819f6f55b09e0a68c898"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 27 01:23:14 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:03 2017 +0100"
      },
      "message": "Remove CFCHierarchy_ordered_classes\n"
    },
    {
      "commit": "e82ee761678b6c60730a819f6f55b09e0a68c898",
      "tree": "8f1708b46c12310bebae9cefa740a0ade7224ab1",
      "parents": [
        "e5b89002ee752aee8563a953b530d4ddafddcf85"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 27 00:58:43 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:03 2017 +0100"
      },
      "message": "Start to use CFCParcel_get_classes\n\nReplace CFCHierarchy_ordered_classes with CFCParcel_get_classes.\n"
    },
    {
      "commit": "e5b89002ee752aee8563a953b530d4ddafddcf85",
      "tree": "2eba238dfe21d0678299858a3b0f5e07a492cef7",
      "parents": [
        "22e055c360f32e93103b04814de7c89c8d4c3211"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Feb 26 23:11:47 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:03 2017 +0100"
      },
      "message": "Sort class arrays of parcels\n\nSome of the code generators require that parent classes are processed\nbefore subclasses. Sort the class array accordingly when building the\nhierarchy.\n\nAlso sort subclasses by class name to guarantee a consistent order.\nThis should make the CFC output completely deterministic. (Except for\noutput that depends on the order of parcels in the global parcel\nregistry. I think the only example is the Perl typemap.)\n"
    },
    {
      "commit": "22e055c360f32e93103b04814de7c89c8d4c3211",
      "tree": "8901e04b6de4aead052fd6a7294725d5a6a91b4e",
      "parents": [
        "bfd19d209bb8d7088aa42c7cd26b539c283a1005"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Feb 26 21:32:58 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:03 2017 +0100"
      },
      "message": "Store class array in parcel\n\nStore an array of all classes that belong to a parcel in CFCParcel.\n"
    },
    {
      "commit": "bfd19d209bb8d7088aa42c7cd26b539c283a1005",
      "tree": "791ceeed8a9bf809c1605a0f6faa5e8cf8e86e71",
      "parents": [
        "7ce20fd218f45f2a647a102e5c1f0d3711f2ee05"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Feb 28 16:25:15 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:02 2017 +0100"
      },
      "message": "Add CFCClass_in_parcel and CFCClass_in_same_parcel\n\nSimple but useful helper functions.\n"
    },
    {
      "commit": "7ce20fd218f45f2a647a102e5c1f0d3711f2ee05",
      "tree": "a96f336236dd66fbc3205b6237c57240ac2a9bb9",
      "parents": [
        "e0c9d8b3d26a53379210f33b57a44bcfed38dec6"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 27 16:58:47 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:02 2017 +0100"
      },
      "message": "Use WeakPtr in CFCType\n\nWeaken the parcel pointer, allowing to store a class array in CFCParcel\nlater.\n"
    },
    {
      "commit": "e0c9d8b3d26a53379210f33b57a44bcfed38dec6",
      "tree": "9a978f2b9e080f4c4582f3ce6eef48dad0d9bb29",
      "parents": [
        "a86fab47c43ca08883e55e55ff9d10bfc5a5017f"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 27 16:05:54 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:08:02 2017 +0100"
      },
      "message": "Use WeakPtr in CFCClass\n\nWeaken the parcel pointer. This allows to store a class array in\nCFCParcel later.\n\nAlso weaken the parent pointer, so that the circular reference doesn\u0027t\nhave to be broken manually.\n"
    },
    {
      "commit": "a86fab47c43ca08883e55e55ff9d10bfc5a5017f",
      "tree": "18e5e3eb3e595b1b6b91d123eca76316d4588355",
      "parents": [
        "0e8aa921a2563e7bcf39c79617034f156f41db52"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 27 13:01:16 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Mar 02 20:06:38 2017 +0100"
      },
      "message": "Implement CFCWeakPtr\n\nWe mostly avoided circular references in CFC so far, although it\u0027s\noften useful to have pointers to a parent or ancestor in the tree\nstructures CFC operates on. Weak pointers allow to break circular\nreferences when destroying objects.\n\nEven after the upcoming changes, CFC won\u0027t reference objects through\nweak pointers after the strong refcount dropped to zero. So we could\njust use normal pointers and simply don\u0027t incref/decref them. The\nWeakPtr mechanism serves mainly as annotation and safety net, making\nsure that weak pointers are used as intended.\n"
    },
    {
      "commit": "0e8aa921a2563e7bcf39c79617034f156f41db52",
      "tree": "ccdce1dec3675fdd7b8a42865acae6d470592682",
      "parents": [
        "45be7f49b06826a8b46b796c8745b2ec941ca154"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Mar 01 17:30:30 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Mar 01 17:30:30 2017 +0100"
      },
      "message": "Fix memory leak\n"
    },
    {
      "commit": "45be7f49b06826a8b46b796c8745b2ec941ca154",
      "tree": "afb1e4f401d495919fe6b097d8ca5c9d76d1e421",
      "parents": [
        "cd847f2425f2410c16606d19738d19dac1f5f3db"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 25 17:22:57 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 25 17:35:18 2017 +0100"
      },
      "message": "Add explanation regarding SUPER::method invocations\n\nThis will hopefully remind me why we have to use static dispatch in\nXSUBs.\n"
    },
    {
      "commit": "cd847f2425f2410c16606d19738d19dac1f5f3db",
      "tree": "96686c9ae6519f4384316086769c39e72360e3d2",
      "parents": [
        "4aea9977c3d25a550cd72d95a4e2493da3711a3a"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 23 23:18:33 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 25 17:24:55 2017 +0100"
      },
      "message": "Fix global destruction check\n\nPL_dirty is already set during the first phase of global destruction\nwhen it\u0027s still safe and even expected to destroy objects. Change the\ntest to check the refcount.\n\nThis fixes destruction of \"our\" variables like in Lucy\u0027s\nt/308-simple.t.\n"
    },
    {
      "commit": "4aea9977c3d25a550cd72d95a4e2493da3711a3a",
      "tree": "3e9bc4fb7da55978ae58b80d8033a2033a99063c",
      "parents": [
        "fbbc859956006b5b36e08ca18d8f612416ca1c3b"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 23 16:15:14 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 23 16:35:50 2017 +0100"
      },
      "message": "Fix potential memory corruption during Perl global destruction\n\nDuring global destruction, DESTROY is called in random order on objects\nremaining because of refcount leaks or circular references. This can\ncause memory corruption with Clownfish objects, so better leak instead\nof corrupting memory.\n\nFixes CLOWNFISH-117.\n"
    },
    {
      "commit": "fbbc859956006b5b36e08ca18d8f612416ca1c3b",
      "tree": "a4b225be42cb16ad59bfa24bf933855a8818a068",
      "parents": [
        "25b872f1a6019f75d8cc139171b410a1d74ff01b"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 23 15:02:07 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 23 15:02:07 2017 +0100"
      },
      "message": "Make DESTROY a no-op for Booleans\n"
    },
    {
      "commit": "25b872f1a6019f75d8cc139171b410a1d74ff01b",
      "tree": "28f2b509552a1bceecc239317118d2fb9af4c961",
      "parents": [
        "5c6d7402ec7c53b9ef0a2ae79f21ad677e549323"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 23 15:00:54 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 23 15:00:54 2017 +0100"
      },
      "message": "Fix refcounts for Perl global error objects\n\nErr_set_error takes a decremented argument. Err_get_error returns a\nnon-incremented object.\n"
    },
    {
      "commit": "5c6d7402ec7c53b9ef0a2ae79f21ad677e549323",
      "tree": "67bb6bfcab8b1653c076af7d603c13b0f38c67c9",
      "parents": [
        "2a44a5b364facdc17b948beff43f8d9c8ee7e96e"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 17 13:19:54 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 17 13:21:53 2017 +0100"
      },
      "message": "Fix stack string documentation\n\nI forgot that we removed special handling of stack strings in DECREF.\n"
    },
    {
      "commit": "2a44a5b364facdc17b948beff43f8d9c8ee7e96e",
      "tree": "258c14efc7d9b0798533ffc0434d526a5f2e55e8",
      "parents": [
        "35304580521f972ed7d62e432fec95875e7de33f"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 13 16:12:19 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 17 13:21:53 2017 +0100"
      },
      "message": "Only write documentation for installed parcels\n"
    },
    {
      "commit": "35304580521f972ed7d62e432fec95875e7de33f",
      "tree": "8ac6f2f15352bcf1a52d9091b908cd4fa109c3db",
      "parents": [
        "a8f14c2db2175feab2be081de6eab5b15844d15c"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Feb 13 16:05:28 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 17 13:21:53 2017 +0100"
      },
      "message": "Fix URI resolution for methods inherited from other parcels\n"
    },
    {
      "commit": "a8f14c2db2175feab2be081de6eab5b15844d15c",
      "tree": "617189ea676ec3569726e69fef01a5ac032d7f25",
      "parents": [
        "b12999dce9f9e70044f4f0b59d9564a228c50fb7"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 16 18:49:48 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 16 18:49:48 2017 +0100"
      },
      "message": "Don\u0027t build fat Perl binaries on macOS\n\nStock Perl on macOS builds fat binaries. Charmonizer has always\nused the wrong sizes for some types on non-native platforms, but\nrecent changes broke the detection copmletely.\n"
    },
    {
      "commit": "b12999dce9f9e70044f4f0b59d9564a228c50fb7",
      "tree": "aeb2e1bfbe68a276b3fed3e6fe86ada6feedc009",
      "parents": [
        "3f3e9b4613e02b6ba5caaa4524478f24c13e9106"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Feb 08 18:39:06 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 09 16:36:55 2017 +0100"
      },
      "message": "Add \"install\" target to C Makefile\n\nFixes CLOWNFISH-116.\n"
    },
    {
      "commit": "3f3e9b4613e02b6ba5caaa4524478f24c13e9106",
      "tree": "13a4147a96d63be50ac645e33c27db079b45c51e",
      "parents": [
        "088a359d3316bf586e8bd0437012ad832eb744bc"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Feb 08 15:42:30 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Feb 08 15:42:30 2017 +0100"
      },
      "message": "Add support for C11 stdatomic.h\n"
    },
    {
      "commit": "088a359d3316bf586e8bd0437012ad832eb744bc",
      "tree": "914fd7cc1ec4a875f5e146c02ac62f58de00e18b",
      "parents": [
        "e65b995fc48020af2675d05271c547b31a434d7a"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 16:12:18 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 18:13:35 2017 +0100"
      },
      "message": "Use chaz_OS_exe_ext() for executables on the host OS\n"
    },
    {
      "commit": "e65b995fc48020af2675d05271c547b31a434d7a",
      "tree": "7fedfdfeb76ac6790d22f0f7ec0b4fa8cd3d0eb2",
      "parents": [
        "c9514ada66321ba8f285a9de920a92224a3b15cb"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 00:46:27 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 18:13:34 2017 +0100"
      },
      "message": "Test ARM cross compilation under Travis\n"
    },
    {
      "commit": "c9514ada66321ba8f285a9de920a92224a3b15cb",
      "tree": "4e683e7cd62b234c34cbe9e6cfe00e8758a181dc",
      "parents": [
        "931b4909bb624d90371c0b1d552314dbe18a322e"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 23:36:14 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 18:13:34 2017 +0100"
      },
      "message": "Update charmonizer code\n\n- CC is now set automatically.\n- Simplify runtime valgrind target.\n- Remove unused variables.\n"
    },
    {
      "commit": "931b4909bb624d90371c0b1d552314dbe18a322e",
      "tree": "b29252e1eb5cd251ef8cbd4f15c4ad9067550d51",
      "parents": [
        "1612e7a48aae57a02ebcff89abb4bf0a706705d3"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 22:33:09 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 18:13:34 2017 +0100"
      },
      "message": "Update build instructions\n"
    },
    {
      "commit": "1612e7a48aae57a02ebcff89abb4bf0a706705d3",
      "tree": "e2344373e7c0f48011333893b43bc4bb61463f39",
      "parents": [
        "ae56843f1f0907e4376aa380df646b79d04d210b"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 22:22:11 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 18:13:34 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": "ae56843f1f0907e4376aa380df646b79d04d210b",
      "tree": "dd03e0351e0b1e737e137512606209f208c3b7d4",
      "parents": [
        "cadebb9166f4be14499125b7f0558f6fd36d3682"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 22:15:05 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 18:13:34 2017 +0100"
      },
      "message": "Add --charmonic option to cfc\n\nWith --charmonic, cfc makes cfish_platform.h include charmony.h and\nuse its CHY_* macros for platform-specific settings. This is needed\nwhen cross-compiling.\n\nOtherwise, the CHY_* values from the CFC configuration are used.\nThis breaks cross compilation but allows to build Clownfish projects\nwithout Charmonizer.\n\nRun cfc with --charmonic when building the runtime.\n"
    },
    {
      "commit": "cadebb9166f4be14499125b7f0558f6fd36d3682",
      "tree": "eac8973a20f6e5c8927228a86ff6aacff091b7c9",
      "parents": [
        "15e683bfcaaeb29a75451e5f06377971910f260d"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 19:56:23 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 18:13:28 2017 +0100"
      },
      "message": "Adjust Charmonizer code for API changes and regenerate\n"
    },
    {
      "commit": "15e683bfcaaeb29a75451e5f06377971910f260d",
      "tree": "9422c07ccf74701169637fddc595692642ce3888",
      "parents": [
        "2b8147d3a728326732cd9d7b50b4154624d7836d"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 14:55:02 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 15:10:54 2017 +0100"
      },
      "message": "Remove CFISH endian macros\n\nLucy\u0027s NumberUtils.cfh doesn\u0027t need them anymore.\n"
    },
    {
      "commit": "2b8147d3a728326732cd9d7b50b4154624d7836d",
      "tree": "6a0daa68ba74960363a5e95a437df6d0e8e961fb",
      "parents": [
        "fa81ff191f9a70187cc7feb43c87c018b3e22fdb"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 13:28:36 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 15:10:50 2017 +0100"
      },
      "message": "Remove U64_TO_DOUBLE macro\n\nIt was only needed for MSVC6.\n"
    },
    {
      "commit": "fa81ff191f9a70187cc7feb43c87c018b3e22fdb",
      "tree": "a9da062d62c9c1171125f9dda054f0edffbf2fe8",
      "parents": [
        "2794cf2eb9d3bf764d6a452db873e51c5744ae87"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Feb 03 13:19:35 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Feb 04 15:10:39 2017 +0100"
      },
      "message": "Remove unused CFISH_SIZEOF_* macros\n\nThese macros were only needed by the old Perl labeled params\ncode.\n"
    },
    {
      "commit": "2794cf2eb9d3bf764d6a452db873e51c5744ae87",
      "tree": "f77e75f818cbe45cb1cfd31354adcb4e8a941f00",
      "parents": [
        "cf8727895be7ca42e3c470db8b2c08e2ab98d9bc"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 02 15:36:40 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 02 15:40:46 2017 +0100"
      },
      "message": "Move downcast and certify from Err to Obj\n\nThe API break shouldn\u0027t be a problem. These functions are always\ninvoked via the respective macros.\n"
    },
    {
      "commit": "cf8727895be7ca42e3c470db8b2c08e2ab98d9bc",
      "tree": "349de52d9705c98b2139df7726dd8805f2ae5ba7",
      "parents": [
        "1b52cc3d6ff367005055f82a09a432d1b8f57c95"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 02 15:10:57 2017 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Feb 02 15:10:57 2017 +0100"
      },
      "message": "Make more functions public and document useful macros\n\nFixes CLOWNFISH-114.\n"
    },
    {
      "commit": "1b52cc3d6ff367005055f82a09a432d1b8f57c95",
      "tree": "8ad2dce2c6cc343646e03c859e28de566d6a86bc",
      "parents": [
        "a720b8d4ad5492b59f7ccb447d0759de955b5faf"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Dec 13 16:18:51 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Dec 13 16:19:22 2016 +0100"
      },
      "message": "Fix svnmucc command in release_commands.pl\n\nSee LUCY-308.\n"
    },
    {
      "commit": "a720b8d4ad5492b59f7ccb447d0759de955b5faf",
      "tree": "6bcc9b111650df70d6d85da02bb826ca2445beae",
      "parents": [
        "fd6393d4c77121d327c3a7a03f71867997256b3f"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Nov 30 20:34:33 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Dec 02 20:28:50 2016 +0100"
      },
      "message": "Only print Makefile contents under automated testing\n"
    },
    {
      "commit": "fd6393d4c77121d327c3a7a03f71867997256b3f",
      "tree": "df2f10f840f04adf43f168e60349076be09bc5ce",
      "parents": [
        "9bf89ad3d0e0e07c9892b73173e406e8deb041d5"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Nov 29 11:34:08 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Nov 29 11:34:08 2016 +0100"
      },
      "message": "Pass $Config{cc} to charmonizer verbatim\n\nDon\u0027t split $Config{cc} into compiler command and arguments when\npassing them to charmonizer. Pass the unmodified string as `--cc`\noption even if it contains spaces. This makes compiler values like\n`ccache cc` work.\n\nFixes CLOWNFISH-111.\n"
    },
    {
      "commit": "9bf89ad3d0e0e07c9892b73173e406e8deb041d5",
      "tree": "458a6dbc0e139c47e6894ef6b7003da91af96f7d",
      "parents": [
        "d2029d7615515f6b1b3c752de4fbdefd3e2b7aff"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Nov 29 11:08:18 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Nov 29 11:08:18 2016 +0100"
      },
      "message": "Don\u0027t regenerate POD when building CPAN distro\n\nOverwriting read-only .pod files can result in errors. Simply skip\n`write_pod` when building the CPAN distribution.\n\nFixes LUCY-316.\n"
    },
    {
      "commit": "d2029d7615515f6b1b3c752de4fbdefd3e2b7aff",
      "tree": "6d4178bace2110cac0dfae2584124bc03951c485",
      "parents": [
        "b92bf137efbe775d09180b68c885b678667d8c66"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Nov 23 16:29:15 2016 +0100"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Nov 23 16:34:18 2016 +0100"
      },
      "message": "Add comma after labeled params in sample code\n"
    },
    {
      "commit": "b92bf137efbe775d09180b68c885b678667d8c66",
      "tree": "0b0d2fb68f490da66c4f13cb4d8ed9da76ee9830",
      "parents": [
        "ae83c3eb5948e933b5b19c0dfb87a001815c8355"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Oct 08 16:44:57 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Oct 09 13:36:19 2016 +0200"
      },
      "message": "Make Err_win_error return English messages\n\nEnglish messages are hopefully strictly ASCII. Passing 0 as language id\nmay return a non-English message using the current code page and\nresulting in invalid UTF-8.\n\nSee LUCY-311.\n"
    },
    {
      "commit": "ae83c3eb5948e933b5b19c0dfb87a001815c8355",
      "tree": "c972fcc348676d56dc5be3935c3b27cbba6014a7",
      "parents": [
        "1d7af027d31de7137b7ec99a21d66326f189a6e9"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Oct 08 13:33:36 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Oct 09 13:35:55 2016 +0200"
      },
      "message": "Try to improve CPAN Testers diagnostics\n\nCheck whether \u0027use Clownfish::Test\u0027 succeeds directly after build.\nIf this fails, it is probably caused by a failure to find symbols from\nClownfish.so, indicating a build problem. In this case, make the build\nfail, so we get the full build log on CPAN Testers.\n"
    },
    {
      "commit": "1d7af027d31de7137b7ec99a21d66326f189a6e9",
      "tree": "138028b0d916e1e00c29afdb825e453239fd3071",
      "parents": [
        "cdbf4ad857dafe81c71187c0de4167dc1a2487d6"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Oct 04 15:46:10 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sun Oct 09 13:27:16 2016 +0200"
      },
      "message": "Don\u0027t index Clownfish::Test in PAUSE\n\nSince 0.40_11, setting the Module::Build property `no_index` directly\nsuppresses the `provides` section in `META.json`. This seems to be the\nmost reliable way to stop PAUSE from indexing packages.\n"
    },
    {
      "commit": "cdbf4ad857dafe81c71187c0de4167dc1a2487d6",
      "tree": "0d88082bbf00116f58a4f1d0151ad49c05001068",
      "parents": [
        "0ba3c4b9555df068626ca140ef4ce71db5adf72f"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Oct 04 14:03:30 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Oct 04 14:03:30 2016 +0200"
      },
      "message": "Support X.Y.Z.D Perl versions\n"
    },
    {
      "commit": "0ba3c4b9555df068626ca140ef4ce71db5adf72f",
      "tree": "7a9c7c7186db768242253c6c844e6890786643c3",
      "parents": [
        "23de68378207b338bb434f6bce602c796e64cbea"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Oct 04 13:40:59 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Oct 04 13:43:34 2016 +0200"
      },
      "message": "Disable thread support under Perl 5.10.0\n\nAt least under modern Linux, thread support of Perl 5.10.0 seems\ncompletely broken. Even the thread tests of Perl itself segfault.\n\nFixes CLOWNFISH-107.\n"
    },
    {
      "commit": "23de68378207b338bb434f6bce602c796e64cbea",
      "tree": "4af4cc1f2c210ed8301d9075c883bfd90cfc54ae",
      "parents": [
        "448eaf07c2c4ee5bc721623c4235fe1c01a34a92"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Oct 03 15:01:40 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Oct 03 15:01:40 2016 +0200"
      },
      "message": "Change tag names in release_commands.pl\n"
    },
    {
      "commit": "448eaf07c2c4ee5bc721623c4235fe1c01a34a92",
      "tree": "4c28147022f8c9a6d2bf19001637e27075659115",
      "parents": [
        "b9c2efb774babc458797d725d8fa357b31d2db63"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Sep 29 16:14:36 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Sep 29 16:14:36 2016 +0200"
      },
      "message": "Regenerate charmonizer.c for pattern rules fix\n\nFixes CLOWNFISH-104.\n"
    },
    {
      "commit": "b9c2efb774babc458797d725d8fa357b31d2db63",
      "tree": "d07496ddf9031d95319ebfde8223d47391abcf63",
      "parents": [
        "1c4446a9ec7813446f49caa5609ac82ca96c74f0"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Sep 29 14:52:47 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Sep 29 14:54:11 2016 +0200"
      },
      "message": "Exclude Clownfish/Test.xs from CPAN tarball\n\nFixes CLOWNFISH-105.\n"
    },
    {
      "commit": "1c4446a9ec7813446f49caa5609ac82ca96c74f0",
      "tree": "03e0bd16c8f748ede2492ed978c202001c4b3e71",
      "parents": [
        "b557bc27aa19a9a7110e1cf1da0820ecc8c77811"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Sep 29 14:07:21 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Sep 29 14:54:11 2016 +0200"
      },
      "message": "Show type of error in CFCUtil_current\n\nThis might help to debug mysterious CPAN Testers failures like\n\nhttp://www.cpantesters.org/cpan/report/19fc2484-8583-11e6-aa8e-960c2aa93d25\n"
    },
    {
      "commit": "b557bc27aa19a9a7110e1cf1da0820ecc8c77811",
      "tree": "ba62093267ec92505f298b518b57fe468231c024",
      "parents": [
        "cb4228524b7bef5af229c4f302eb68ce1573fa76"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Sep 29 13:58:21 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Thu Sep 29 14:53:50 2016 +0200"
      },
      "message": "Bump Module::Build dependency to 0.3604\n\nSetting c_source to an arrayref with multiple directories isn\u0027t\nsupported in previous versions.\n\nFixes CLOWNFISH-106.\n"
    },
    {
      "commit": "cb4228524b7bef5af229c4f302eb68ce1573fa76",
      "tree": "9a9b967bb861849f743713aa1558671542019794",
      "parents": [
        "7d2eb1b472711234fe709ebafd9e011ece0b77e1"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Sep 24 15:07:09 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Sep 24 15:07:09 2016 +0200"
      },
      "message": "Update release date for 0.6.0 release\n"
    },
    {
      "commit": "7d2eb1b472711234fe709ebafd9e011ece0b77e1",
      "tree": "2fa7ea282f63457436da0fd0c04ee10e76cff78f",
      "parents": [
        "767ab5e697d2780208f9afeedf0554962d7e3a38"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Sep 24 14:55:49 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Sep 24 14:56:26 2016 +0200"
      },
      "message": "Update version number for release 0.6.0\n"
    },
    {
      "commit": "767ab5e697d2780208f9afeedf0554962d7e3a38",
      "tree": "5aab05967b5d22c47cd416400b06a15ee8761823",
      "parents": [
        "366ecac936a2d1573dc1841028d96586207d8102"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Sep 24 14:52:04 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Sep 24 14:52:04 2016 +0200"
      },
      "message": "Update update_version script\n"
    },
    {
      "commit": "366ecac936a2d1573dc1841028d96586207d8102",
      "tree": "3c1c5d073df0bae1681d29062c12d9873d50143c",
      "parents": [
        "95cb87514628beded6c1351ccf2849b913d45096"
      ],
      "author": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Sep 14 17:27:08 2016 -0700"
      },
      "committer": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Sep 14 17:27:08 2016 -0700"
      },
      "message": "Add CHANGES entry for 0.6.0.\n"
    },
    {
      "commit": "95cb87514628beded6c1351ccf2849b913d45096",
      "tree": "c983864978084d2ba4d0041a9a7d29a896fa0399",
      "parents": [
        "bd6bcde5d264aa351302fd069900e7d9ce96d7f5"
      ],
      "author": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Sep 14 17:26:16 2016 -0700"
      },
      "committer": {
        "name": "Marvin Humphrey",
        "email": "marvin@rectangular.com",
        "time": "Wed Sep 14 17:26:16 2016 -0700"
      },
      "message": "Dupe CHANGES from 0.5.x.\n"
    },
    {
      "commit": "bd6bcde5d264aa351302fd069900e7d9ce96d7f5",
      "tree": "46973bce0e9ef791d7a235947c50fff335f23495",
      "parents": [
        "71759cfcef5e10c92f309efbaa5a3cc40c29696e"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 19:32:45 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 19:32:45 2016 +0200"
      },
      "message": "Add t/cfinc to CPAN distribution\n"
    },
    {
      "commit": "71759cfcef5e10c92f309efbaa5a3cc40c29696e",
      "tree": "d99d6fc98a2551c859d7afa2fa7d9eef098c8d54",
      "parents": [
        "1ba0f7e18b0ee0c000bb74634756e86c0dcd1dba"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 18:01:09 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 18:43:18 2016 +0200"
      },
      "message": "Fix croak_sv usage\n\ncroak_sv is only available since Perl 5.14.\n\nAlso switch to FREEMEM to avoid crash under ActivePerl.\n"
    },
    {
      "commit": "1ba0f7e18b0ee0c000bb74634756e86c0dcd1dba",
      "tree": "07b478d91389b23a9d05165adb0d6eab0e62f491",
      "parents": [
        "4230a73b4f550a7e5a4a5f27ac5211bf3acdd336"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 17:57:06 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 17:57:06 2016 +0200"
      },
      "message": "Update rat-excludes\n"
    },
    {
      "commit": "4230a73b4f550a7e5a4a5f27ac5211bf3acdd336",
      "tree": "8561e42b31bb5c2734025cfda4632c2003968acd",
      "parents": [
        "03ff7ddfd5c113e9d35e918d4eb7c5ca94b8e6df"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 16:49:15 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 17:22:44 2016 +0200"
      },
      "message": "Regenerate charmonizer.c to fix memory leak\n"
    },
    {
      "commit": "03ff7ddfd5c113e9d35e918d4eb7c5ca94b8e6df",
      "tree": "9b25efe916c50eac0792f6fc3ca6aca5995734f3",
      "parents": [
        "da8107e543e84adc29977bd3c4ee30b21040a7f8"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 16:49:01 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 17:22:44 2016 +0200"
      },
      "message": "Update valgrind suppressions\n"
    },
    {
      "commit": "da8107e543e84adc29977bd3c4ee30b21040a7f8",
      "tree": "be9888c88416c29fcde0e4590b5ef08ff807f256",
      "parents": [
        "65bf8eff8d543658033499b54744d8983d12a532"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 16:48:36 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 17:22:44 2016 +0200"
      },
      "message": "Fix memory leak in runtime tests\n"
    },
    {
      "commit": "65bf8eff8d543658033499b54744d8983d12a532",
      "tree": "50096cddc32356009ad890ec3c49479b859c6b0f",
      "parents": [
        "ad5ba99cf66f8be6b9ca1a5db6db3b74c141abf3"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 16:43:12 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 17:22:44 2016 +0200"
      },
      "message": "Fix memory leak in CFC\n"
    },
    {
      "commit": "ad5ba99cf66f8be6b9ca1a5db6db3b74c141abf3",
      "tree": "f315e4ac246b8c74110075bd9e1e1d2c1f8f7f68",
      "parents": [
        "c298a9e6e95f255c830230e631f7b503f8aa45da"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 16:37:10 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 17:22:44 2016 +0200"
      },
      "message": "Fix memory leaks in CFC tests\n"
    },
    {
      "commit": "c298a9e6e95f255c830230e631f7b503f8aa45da",
      "tree": "ce3605b9473b5f449bcc175054123e33130a22b8",
      "parents": [
        "28d54ae4f29e19914a2db1202914716bc8881ed1"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 16:34:25 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 17:22:06 2016 +0200"
      },
      "message": "Fix tests requiring TestUtils\n\n`buildlib` must be added to @INC.\n"
    },
    {
      "commit": "28d54ae4f29e19914a2db1202914716bc8881ed1",
      "tree": "5b6b158dc5511a721ae43a60b972d2bbabef1ca7",
      "parents": [
        "8c6d95a34e956e034fa86b1163218bc7ce723ea1"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 15:57:49 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Wed Sep 07 15:58:31 2016 +0200"
      },
      "message": "Fix Clownfish::Test::run_tests\n\nFix a stupid bug that always ran the same test.\n"
    },
    {
      "commit": "8c6d95a34e956e034fa86b1163218bc7ce723ea1",
      "tree": "6f782e6b2775233352989403130ba6d7024c2616",
      "parents": [
        "6a5fed41fcea5802242765cdc8084fa4b3453553"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Aug 26 19:03:40 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Aug 26 19:23:22 2016 +0200"
      },
      "message": "Add Python bindings to CI tests\n\nThe Travis tests are still disabled. Compiling _clownfish.c fails\nbecause the GCC version doesn\u0027t default to C99.\n"
    },
    {
      "commit": "6a5fed41fcea5802242765cdc8084fa4b3453553",
      "tree": "c7b9f9b61b6e745e4cf31667c347423b16fba9df",
      "parents": [
        "335d918817b269d27e6d155cf52608c8fb896c18"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Aug 26 19:02:38 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Aug 26 19:19:32 2016 +0200"
      },
      "message": "Exit with error code if Python tests fail\n"
    },
    {
      "commit": "335d918817b269d27e6d155cf52608c8fb896c18",
      "tree": "50d4101f4b2e048423e2c189e8f631b6675d6c3e",
      "parents": [
        "09e9fc654dc4c2e368e189a1dd2c1330fffa301b"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Aug 26 18:29:17 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Aug 26 19:19:32 2016 +0200"
      },
      "message": "Implement copy-on-incref for Python bindings\n"
    },
    {
      "commit": "09e9fc654dc4c2e368e189a1dd2c1330fffa301b",
      "tree": "4cf458a5d13465c4d301a8de45961f3ebbfa0d36",
      "parents": [
        "aad2186fbf819ca0407d5736d6f33a88644f247f"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Aug 26 18:07:52 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Aug 26 19:19:32 2016 +0200"
      },
      "message": "Fix Python build under MSVC\n"
    },
    {
      "commit": "aad2186fbf819ca0407d5736d6f33a88644f247f",
      "tree": "58838e678cbfb21655d7d8dc5667b8892879ed60",
      "parents": [
        "ace28017f14061bcf85cd610056862bd59b0ec11"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Aug 26 13:58:53 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Aug 26 19:15:16 2016 +0200"
      },
      "message": "Fix Python bindings\n"
    },
    {
      "commit": "ace28017f14061bcf85cd610056862bd59b0ec11",
      "tree": "ead7d573ed2f064f2eead6b1669523208bb57d81",
      "parents": [
        "a47be68a0fdf2d2e9f82fc724e1cc916d1d43121"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Aug 26 13:55:24 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Fri Aug 26 13:55:24 2016 +0200"
      },
      "message": "Fix nullary function declarations\n"
    },
    {
      "commit": "a47be68a0fdf2d2e9f82fc724e1cc916d1d43121",
      "tree": "4ede01217b63dea03753d6fcef98f1a9a1c351eb",
      "parents": [
        "ce5e65bb0ee3bed67ff7611cefaff72f8a12cb83"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 19:58:24 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 20:50:12 2016 +0200"
      },
      "message": "Add option to use system cmark\n\nFor the Perl build:\n\n    perl Build.PL --with_system_cmark\u003d1\n\nFor the C build:\n\n    ./configure --with-system-cmark\n\nFixes CLOWNFISH-87.\n"
    },
    {
      "commit": "ce5e65bb0ee3bed67ff7611cefaff72f8a12cb83",
      "tree": "749de61c453c55cc5965f2018a86f2c89a1fd203",
      "parents": [
        "26c70a36f95d29668f3a2bc8c32bcf6720f75f7c"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 17:32:16 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 17:35:04 2016 +0200"
      },
      "message": "Run thread tests under Travis Perl\n\nThe \"5.x-extras\" Perl versions are built with -Duseithreads:\n\n    https://blog.travis-ci.com/2014-09-03-minor-language-update\n"
    },
    {
      "commit": "26c70a36f95d29668f3a2bc8c32bcf6720f75f7c",
      "tree": "12a3b77e78caeb723e97610e8d3e44ffa80a7919",
      "parents": [
        "3fcd4281a84a9936051189fbff339a7a8c0c435c"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 17:23:24 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 17:30:59 2016 +0200"
      },
      "message": "Rename libcfish to libclownfish\n\nFixes CLOWNFISH-103.\n"
    },
    {
      "commit": "3fcd4281a84a9936051189fbff339a7a8c0c435c",
      "tree": "d0c703893d2e5762a5fe90d208e56d39de8e6ae0",
      "parents": [
        "9f31a790e572517f74fdce0f12e608d32a38c8b5"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 16:58:36 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 17:13:00 2016 +0200"
      },
      "message": "Disable threads under Perl \u003c 5.8.7\n\nThread safety requires the CLONE_SKIP method introduced in Perl 5.8.7.\n\nFixes CLOWNFISH-92.\n"
    },
    {
      "commit": "9f31a790e572517f74fdce0f12e608d32a38c8b5",
      "tree": "71ca2eb5133b99cff5a7fcded8b0353a8c51668a",
      "parents": [
        "dba8fd50867ecb2025f48c36e7882b8bc054fe46",
        "3d3e4cedc5ad224c08614843edda972939baeace"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 16:27:44 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Sat Aug 06 16:27:44 2016 +0200"
      },
      "message": "Merge branch \u0027string-helpers\u0027\n\nFixes CLOWNFISH-76.\n"
    },
    {
      "commit": "3d3e4cedc5ad224c08614843edda972939baeace",
      "tree": "71ca2eb5133b99cff5a7fcded8b0353a8c51668a",
      "parents": [
        "ed2010caec0af7ccdcaff76a05cdb516166a6ad4"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Aug 02 19:33:32 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Aug 02 19:33:32 2016 +0200"
      },
      "message": "Move StringHelper from Clownfish to Lucy\n"
    },
    {
      "commit": "ed2010caec0af7ccdcaff76a05cdb516166a6ad4",
      "tree": "30c31d0cc48e1b7dc9586523ba89fc2e6e8cb237",
      "parents": [
        "64a100083d473b498e4fa524360156c47d7008bc"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Aug 02 18:46:35 2016 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Tue Aug 02 19:05:14 2016 +0200"
      },
      "message": "Move some functions from StrHelp to Str\n\n- utf8_valid\n- validate_utf8\n- is_whitespace\n- encode_utf8_char\n"
    }
  ],
  "next": "64a100083d473b498e4fa524360156c47d7008bc"
}
