)]}'
{
  "log": [
    {
      "commit": "31440a1f2b6ae8a2f7ffdd4a8a3661eadc4df23c",
      "tree": "ae2e66c08b770e8e9e1b39db369867446a9f9e0b",
      "parents": [
        "57e69ff2cca9edee3546373d04e0dde6810309e5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 30 23:14:28 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 30 23:14:28 2016 +0200"
      },
      "message": "patch 7.4.2132\nProblem:    test_partial has memory leaks reported.\nSolution:   Add a note about why this happens.\n"
    },
    {
      "commit": "b33c7eb5b813cb631b2b0ca5c4029e1788a09bde",
      "tree": "946d5345ef5df3e40dd0e84222f3ad0a68718cae",
      "parents": [
        "ab9c89b68dcbdb3fbda8c5a50dd90caca64f1bfd"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 04 22:29:49 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 04 22:29:49 2016 +0200"
      },
      "message": "patch 7.4.1989\nProblem:    filter() and map() only accept a string argument.\nSolution:   Implement using a Funcref argument (Yasuhiro Matsumoto, Ken\n            Takata)\n"
    },
    {
      "commit": "8e759ba8651428995b338b66c615367259f79766",
      "tree": "01e5e8849eb048d9709fc5176888a8b34bd045e0",
      "parents": [
        "ae3f33040ba752e7f6b722d2fe2b2ebeeb8c56b4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 02 17:46:20 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 02 17:46:20 2016 +0200"
      },
      "message": "patch 7.4.1875\nProblem:    Comparing functions and partials doesn\u0027t work well.\nSolution:   Add tests. (Nikolai Pavlov)  Compare the dict and arguments in the\n            partial. (closes #813)\n"
    },
    {
      "commit": "324a78f3b649e7b14741519ecf19c4aba178772d",
      "tree": "5b4a1e8ef0131886c6ec57598c443e969842b96d",
      "parents": [
        "655da31a18ef3f888acf10e68b438e2a851f7b14"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 28 22:47:12 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 28 22:47:12 2016 +0200"
      },
      "message": "patch 7.4.1856\nProblem:    failing job test fails on MS-Windows.\nSolution:   Expect \"fail\" status instead of \"dead\".\n"
    },
    {
      "commit": "655da31a18ef3f888acf10e68b438e2a851f7b14",
      "tree": "83d8a9b03a2d926d7b94092e975a66f679fd1b70",
      "parents": [
        "d80629cef03cd40b0bf06c402dfe0b720b3bf608"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 28 22:22:34 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 28 22:22:34 2016 +0200"
      },
      "message": "patch 7.4.1855\nProblem:    Valgrind reports memory leak for job that is not freed.\nSolution:   Free all jobs on exit.  Add test for failing job.\n"
    },
    {
      "commit": "03e19a04ac2ca55643663b97b6ab94043233dcbd",
      "tree": "ff9808aa3889a303bd55f50843ba69b9049d7d53",
      "parents": [
        "26852128a2b713ef49341a0c18daba928444e7eb"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 24 22:29:49 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 24 22:29:49 2016 +0200"
      },
      "message": "patch 7.4.1842\nProblem:    get() works for Partial but not for Funcref.\nSolution:   Accept Funcref.  Also return the function itself. (Nikolai Pavlov)\n"
    },
    {
      "commit": "2bbf8eff6fab16d86e7bcfc0da1962d31bec7891",
      "tree": "7caeb82bd296e6031357318339d5f5c271e0763e",
      "parents": [
        "574860b5ee9da281c875dad07a607454e135eaee"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 24 18:37:12 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 24 18:37:12 2016 +0200"
      },
      "message": "patch 7.4.1839\nProblem:    Cannot get the items stored in a partial.\nSolution:   Support using get() on a partial.\n"
    },
    {
      "commit": "1d429610bf9e99a6252be8abbc910d6667e4d1da",
      "tree": "348de7a5f9706f94ebcf03796263d5c743d6d0e3",
      "parents": [
        "991dea3ab185fb35e577ab0bdfd443cd4b43ccc6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 24 15:44:17 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 24 15:44:17 2016 +0200"
      },
      "message": "patch 7.4.1836\nProblem:    When using a partial on a dictionary it always gets bound to that\n            dictionary.\nSolution:   Make a difference between binding a function to a dictionary\n            explicitly or automatically.\n"
    },
    {
      "commit": "9e4043757cd2fc18d071fdd98abf297d74878943",
      "tree": "e05d93326c692e8f9ff90514ad0574330a82a53e",
      "parents": [
        "107e1eef1df3b786ad3ad49fbdb9e058649303b5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 08 17:25:19 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 08 17:25:19 2016 +0200"
      },
      "message": "patch 7.4.1720\nProblem:    Tests fail without the job feature.\nSolution:   Skip tests when the job feature is not present.\n"
    },
    {
      "commit": "107e1eef1df3b786ad3ad49fbdb9e058649303b5",
      "tree": "1b645e4de0cc6a8021a5c48ca97897edf7e48adf",
      "parents": [
        "d56374e25df0b317b01423a01f158157faa647fa"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 08 17:07:19 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 08 17:07:19 2016 +0200"
      },
      "message": "patch 7.4.1719\nProblem:    Leaking memory when there is a cycle involving a job and a\n            partial.\nSolution:   Add a copyID to job and channel.  Set references in items referred\n            by them.  Go through all jobs and channels to find unreferenced\n            items.  Also, decrement reference counts when garbage collecting.\n"
    },
    {
      "commit": "ddecc25947dbdd689d5bcaed32f298a08abdd497",
      "tree": "a6a666b3e79c37895431f7732a4318b0692aa366",
      "parents": [
        "54f1b7abf8c48b1dd997202258d1d0673ed4bd29"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 06 22:59:37 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 06 22:59:37 2016 +0200"
      },
      "message": "patch 7.4.1715\nProblem:    Double free when a partial is in a cycle with a list or dict.\n            (Nikolai Pavlov)\nSolution:   Do not free a nested list or dict used by the partial.\n"
    },
    {
      "commit": "4c90861e9f864eab94f043c432acff508396ed62",
      "tree": "3dd833ecd38ad0b11bacb07d250469e439c2249f",
      "parents": [
        "c5fbe8af4cd80789f831b78aa44ff0b238138769"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 24 21:58:12 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 24 21:58:12 2016 +0100"
      },
      "message": "patch 7.4.1646\nProblem:    Using Python vim.bindeval() on a partial doesn\u0027t work. (Nikolai\n            Pavlov)\nSolution:   Add VAR_PARTIAL support in Python.\n"
    },
    {
      "commit": "c5fbe8af4cd80789f831b78aa44ff0b238138769",
      "tree": "20b3bcb5a78ed166babf59c96c3792ca13fbb95b",
      "parents": [
        "24c77a1e3a2ad510582116229462b482d69b4b8e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 24 21:42:09 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 24 21:42:09 2016 +0100"
      },
      "message": "patch 7.4.1645\nProblem:    When a dict contains a partial it can\u0027t be redefined as a\n            function. (Nikolai Pavlov)\nSolution:   Remove the partial when overwriting with a function.\n"
    },
    {
      "commit": "24c77a1e3a2ad510582116229462b482d69b4b8e",
      "tree": "4a9dcaa87719c7690ebdabf09f7014644a27248b",
      "parents": [
        "d4caf5c16a9f1c9477d426e58d8d3dc47ab5f066"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 24 21:23:06 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 24 21:23:06 2016 +0100"
      },
      "message": "patch 7.4.1644\nProblem:    Using string() on a partial that exists in the dictionary it binds\n            results in an error. (Nikolai Pavlov)\nSolution:   Make string() not fail on a recursively nested structure. (Ken\n            Takta)\n"
    },
    {
      "commit": "e4eb6ff089e79e659acf33c17dd0fda7177de526",
      "tree": "910b326824ce60fea246dcf913735c61610b29d9",
      "parents": [
        "6c0e984f263fc1eef42c9b34a80eff1bceb8d05b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 22 21:00:09 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 22 21:00:09 2016 +0100"
      },
      "message": "patch 7.4.1638\nProblem:    When binding a function to a dict the reference count is wrong.\nSolution:   Decrement dict reference count, only reference the function when\n            actually making a copy. (Ken Takata)\n"
    },
    {
      "commit": "5c29154b521e9948190be653cfda666ecbb63b5b",
      "tree": "e843a392c353d941b91e2fdb325d642ea5a1bb5f",
      "parents": [
        "f0e86a0dbddc18568910e9e4aaae0cd88ca8087a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 19 20:05:45 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 19 20:05:45 2016 +0100"
      },
      "message": "patch 7.4.1608\nProblem:    string() doesn\u0027t handle a partial.\nSolution:   Make a string from a partial.\n"
    },
    {
      "commit": "9e63f61cb01c70fd71652f54b2d01ee27b2a3534",
      "tree": "d4f7622cefb7e5776fa55d6f44f8dbe38b8a0390",
      "parents": [
        "1ff2b64b11e7d263c6853745d5e594bd8f94b91e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 17 23:13:28 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 17 23:13:28 2016 +0100"
      },
      "message": "patch 7.4.1589\nProblem:    Combining dict and args with partial doesn\u0027t always work.\nSolution:   Use the arguments from the partial.\n"
    },
    {
      "commit": "8a1bb046378f4bc68d6a04af2eab80fb3ce04da6",
      "tree": "eb65f3b2a78eb939f72723aa1931349a1073ad18",
      "parents": [
        "d22a18928ebcb465393da1418bb88204b97badb1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 17 21:11:53 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 17 21:11:53 2016 +0100"
      },
      "message": "patch 7.4.1586\nProblem:    Nesting partials doesn\u0027t work.\nSolution:   Append arguments. (Ken Takata)\n"
    },
    {
      "commit": "d22a18928ebcb465393da1418bb88204b97badb1",
      "tree": "5e41881819a4ded59a890fed0589748ec7d0430d",
      "parents": [
        "0e0b3dd335b863603b9a2d415ef18d983e2467ae"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 17 20:50:47 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 17 20:50:47 2016 +0100"
      },
      "message": "patch 7.4.1585\nProblem:    Partial is not recognized everywhere.\nSolution:   Check for partial in trans_function_name(). (Yasuhiro Matsumoto)\n            Add a test.\n"
    },
    {
      "commit": "6f2e4b36c9d9908e1cace2b1b96e2c154a837bc2",
      "tree": "cc33edb80550df0858eeb9b330aa7413acf138dd",
      "parents": [
        "65639032bb7b17996cd255d1508a1df4ad528a1f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Mar 16 22:52:12 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Mar 16 22:52:12 2016 +0100"
      },
      "message": "patch 7.4.1582\nProblem:    Get E923 when using function(dict.func, [], dict). (Kent Sibilev)\n            Storing a function with a dict in a variable drops the dict if the\n            function is script-local.\nSolution:   Translate the function name.  Use dict arg if present.\n"
    },
    {
      "commit": "65639032bb7b17996cd255d1508a1df4ad528a1f",
      "tree": "c401708b24d875fb01cc3bdd5989a0f271ad652c",
      "parents": [
        "7a5c46a9df7ef01a4f6a620861c35400d5ad28d9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Mar 16 21:40:30 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Mar 16 21:40:30 2016 +0100"
      },
      "message": "patch 7.4.1581\nProblem:    Using \":call dict.func()\" where the function is a partial does\n            not work.  Using \"dict.func()\" where the function does not take a\n            Dictionary does not work.\nSolution:   Handle partial properly in \":call\". (Yasuhiro Matsumoto)\n"
    },
    {
      "commit": "7a5c46a9df7ef01a4f6a620861c35400d5ad28d9",
      "tree": "ae1e23483268d9ac678fd0ae9187d5d9eac8ffb1",
      "parents": [
        "a3dc5e92dcb79bdc4f0103e6eb91de4c7a6ee9a7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Mar 16 20:41:21 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Mar 16 20:41:21 2016 +0100"
      },
      "message": "patch 7.4.1580\nProblem:    Crash when using function reference. (Luchr)\nSolution:   Set initial refcount. (Ken Takata, closes #690)\n"
    },
    {
      "commit": "ab1fa3955f25dfdb7e329c3bd76e175c93c8cb5e",
      "tree": "4c9f176dd2761b6ec3575b9d414efa5570499eae",
      "parents": [
        "927030af23982a70580178e32806cd3638ce6e5b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 15 19:33:34 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 15 19:33:34 2016 +0100"
      },
      "message": "patch 7.4.1577\nProblem:    Cannot pass \"dict.Myfunc\" around as a partial.\nSolution:   Create a partial when expected.\n"
    },
    {
      "commit": "346418c624f1bc7c04c98907134a2b284e6452dd",
      "tree": "9536dbf311a117975028658538f2f88ad68e54ed",
      "parents": [
        "790500a8e65bee295ef51a59dfa67ecbaab8ea17"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 15 12:36:08 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 15 12:36:08 2016 +0100"
      },
      "message": "patch 7.4.1564\nProblem:    An empty list in function() causes an error.\nSolution:   Handle an empty list like there is no list of arguments.\n"
    },
    {
      "commit": "790500a8e65bee295ef51a59dfa67ecbaab8ea17",
      "tree": "db912adce069e1b31d818926d6da561a5fd30a3a",
      "parents": [
        "9eb3bb2930f804c1d428ea4527e136ac9cd9da43"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 15 11:05:45 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 15 11:05:45 2016 +0100"
      },
      "message": "patch 7.4.1563\nProblem:    Partial test fails on windows.\nSolution:   Return 1 or -1 from compare function.\n"
    },
    {
      "commit": "1735bc988c546cc962c5f94792815b4d7cb79710",
      "tree": "5d1fcc3e5d0f0d37fa33097c2eacff4cbc2317d4",
      "parents": [
        "9cdf86b86f5fdb5a45b682f336846f9d9a9c6f1f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Mar 14 23:05:14 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Mar 14 23:05:14 2016 +0100"
      },
      "message": "patch 7.4.1559\nProblem:    Passing cookie to a callback is clumsy.\nSolution:   Change function() to take arguments and return a partial.\n"
    }
  ]
}
