)]}'
{
  "log": [
    {
      "commit": "170fcfcf250954d76fca86e3fed088ddfdb49383",
      "tree": "8bb4fddeecab3a9e4e5f8c0e6917977f72ffaf32",
      "parents": [
        "6e587dcbf319ea898ef50f7e367c46586a6f408a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Feb 06 17:51:35 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Feb 06 17:51:35 2020 +0100"
      },
      "message": "patch 8.2.0222: Vim9: optional function arguments don\u0027t work yet\n\nProblem:    Vim9: optional function arguments don\u0027t work yet.\nSolution:   Implement optional function arguments.\n"
    },
    {
      "commit": "bfe12043128d75585749f82aebbf4cdd1a7dfe31",
      "tree": "aa8748b5d2b9e4c51f65b5a210580b254a0d9d79",
      "parents": [
        "26e117e9bcc09926d654b5993d61acde6b5749db"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 04 21:54:07 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 04 21:54:07 2020 +0100"
      },
      "message": "patch 8.2.0207: crash when missing member type on list argument\n\nProblem:    Crash when missing member type on list argument.\nSolution:   Check for invalid type. (closes #5572)\n"
    },
    {
      "commit": "4e12a5df37ed4a47ca94a8b9393c768e8ca1f75a",
      "tree": "3f3386ab89dbb5d4c813c142b852856dcd7bc1ff",
      "parents": [
        "b283a8a6802ef8a46b17cb439f9514840c03698f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 03 20:50:59 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 03 20:50:59 2020 +0100"
      },
      "message": "patch 8.2.0201: cannot assign to an imported variable\n\nProblem:    Cannot assign to an imported variable.\nSolution:   Make it work.\n"
    },
    {
      "commit": "0f18b6d17baa7d33f209a3184726a162c2bb7ed8",
      "tree": "3923d2a2f39a661bc762078b2690b556c750bd29",
      "parents": [
        "43c60eda2aa22ba3d7aaf418cfbdb75f1a008e67"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 02 17:22:27 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 02 17:22:27 2020 +0100"
      },
      "message": "patch 8.2.0199: Vim9 script commands not sufficiently tested\n\nProblem:    Vim9 script commands not sufficiently tested.\nSolution:   Add more tests.  Fix script-local function use.\n"
    },
    {
      "commit": "a259d8d30bc289764925fc42db1dbe774f0bb3f8",
      "tree": "ff0e14025b46941dc7bac65ab1f93420e1b14083",
      "parents": [
        "92be6e3f46120bb8e6c8fca0a7868a08df8b3345"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 31 20:10:50 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 31 20:10:50 2020 +0100"
      },
      "message": "patch 8.2.0185: Vim9 script: cannot use \"if has()\" to skip lines\n\nProblem:    Vim9 script: cannot use \"if has()\" to skip lines.\nSolution:   Evaluate constant expression at runtime.\n"
    },
    {
      "commit": "9a5e5a3e33bb86ba5209278e83ec60790f80d15c",
      "tree": "896a595bdac9f4fd644de76e781461b4d94cafcb",
      "parents": [
        "a6d536829a2c3151f3d0faa0ecdc7b8230fb11ec"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 28 23:09:23 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 28 23:09:23 2020 +0100"
      },
      "message": "patch 8.2.0171: Coverity warning for using uninitialized buffer\n\nProblem:    Coverity warning for using uninitialized buffer.\nSolution:   Check the skip flag.\n"
    },
    {
      "commit": "50985eb1f0bd3c73ce727f9bbd66c839c92ef0da",
      "tree": "e7b8b997f064de0b6b9fb57ee031fa41ef175e56",
      "parents": [
        "3f169ce17e8b779d105c96138a8b4246f2d270b9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 27 22:09:39 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 27 22:09:39 2020 +0100"
      },
      "message": "patch 8.2.0159: non-materialized range() list causes problems\n\nProblem:    Non-materialized range() list causes problems. (Fujiwara Takuya)\nSolution:   Materialize the list where needed.\n"
    },
    {
      "commit": "673660ab00d808d1e96e7181a60c5c8545c0ee75",
      "tree": "f1640b455e435624fa045d972e7d27ee5b77dda1",
      "parents": [
        "8a7d6542b33e5d2b352262305c3bfdb2d14e1cf8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 26 16:50:05 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 26 16:50:05 2020 +0100"
      },
      "message": "patch 8.2.0150: cannot define python function when using :execute\n\nProblem:    Cannot define python function when using :execute. (Yasuhiro\n            Matsumoto)\nSolution:   Do not recognize \"def\" inside \"function.\n"
    },
    {
      "commit": "8a7d6542b33e5d2b352262305c3bfdb2d14e1cf8",
      "tree": "8e5f241129a1c690ea81d697a72fb4c1704c0cb6",
      "parents": [
        "1d9215b9aaa120b9d78fee49488556f73007ce78"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 26 15:56:19 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 26 15:56:19 2020 +0100"
      },
      "message": "patch 8.2.0149: maintaining a Vim9 branch separately is more work\n\nProblem:    Maintaining a Vim9 branch separately is more work.\nSolution:   Merge the Vim9 script changes.\n"
    },
    {
      "commit": "e31ee86859528a7ffe00405645547d494e522fa8",
      "tree": "741c24aea3fae5efb613d64314a6721d6cad85c5",
      "parents": [
        "ce6db0273f2c4359f48d75103a42991aa481f14e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 07 20:59:34 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 07 20:59:34 2020 +0100"
      },
      "message": "patch 8.2.0098: exe stack length can be wrong without being detected\n\nProblem:    Exe stack length can be wrong without being detected.\nSolution:   Add a check when ABORT_ON_INTERNAL_ERROR is defined.\n"
    },
    {
      "commit": "b9adef79eca6f95bc7376ff3a6a383e436c5d6ea",
      "tree": "0b91933fe657397aee86a36dcacc3b45837bc9f6",
      "parents": [
        "271fa08a35b8d320d3a40db4ddae83b698fdd4fb"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 02 14:31:22 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 02 14:31:22 2020 +0100"
      },
      "message": "patch 8.2.0078: expanding \u003csfile\u003e works differently the second time\n\nProblem:    Expanding \u003csfile\u003e works differently the second time.\nSolution:   Keep the expanded name when redefining a function. (closes #5425)\n"
    },
    {
      "commit": "ef140544f6703a7a4c0f6a15f610508ed6b09e89",
      "tree": "e11a318767682da93b9666af66f3d5987baacf39",
      "parents": [
        "d2c946bacfedf4e506a4c6771758beddb87df3af"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 31 21:27:13 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 31 21:27:13 2019 +0100"
      },
      "message": "patch 8.2.0067: ERROR_UNKNOWN clashes on some systems\n\nProblem:    ERROR_UNKNOWN clashes on some systems.\nSolution:   Rename ERROR_ to FCERR_. (Ola Söder, closes #5415)\n"
    },
    {
      "commit": "1a47ae32cdc19b0fd5a82e19fe5fddf45db1a506",
      "tree": "8f5dc27f3eeea927ad3ca8de42fe0df06a041dd5",
      "parents": [
        "257a396879ff67a0482841a39237f30a8e1e27c5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 29 23:04:25 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 29 23:04:25 2019 +0100"
      },
      "message": "patch 8.2.0056: execution stack is incomplete and inefficient\n\nProblem:    Execution stack is incomplete and inefficient.\nSolution:   Introduce a proper execution stack and use it instead of\n            sourcing_name/sourcing_lnum.  Create a string only when used.\n"
    },
    {
      "commit": "eac7ce01e92f3dee6bbccaf7e88680fe2ce286eb",
      "tree": "5493a8fc78976cba8b132982160a00145263ec7a",
      "parents": [
        "6c52f8237199ea09abbecdc5b89847c5889c3de1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 25 15:04:03 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 25 15:04:03 2019 +0100"
      },
      "message": "patch 8.2.0042: clearing funccal values twice\n\nProblem:    Clearing funccal values twice.\nSolution:   Remove clearing individual fields.\n"
    },
    {
      "commit": "ddef129160ff0676e5da482071fb2fdc2988ac34",
      "tree": "8a7e0327a604dda5257739139ef271b587a345e9",
      "parents": [
        "559b9c68fe550f3af63d42e0838622aab1ceb1b3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 16 17:10:33 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 16 17:10:33 2019 +0100"
      },
      "message": "patch 8.2.0013: not using a typedef for condstack\n\nProblem:    Not using a typedef for condstack.\nSolution:   Add a typedef.\n"
    },
    {
      "commit": "e38eab22c1fb950127f0307a9904de6d4561dc70",
      "tree": "3435d9a3e3654948067dd1a89ebacf333ba877f0",
      "parents": [
        "0d6f5d9740dbad1b0207f3ab257de806169dd905"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 05 21:50:01 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 05 21:50:01 2019 +0100"
      },
      "message": "patch 8.1.2396: using old C style comments\n\nProblem:    Using old C style comments.\nSolution:   Use // comments where appropriate.\n"
    },
    {
      "commit": "4c054e9fb23027b55a09ee647a3a2c91936aeb1b",
      "tree": "d82b63c1d746e94f9f6ae1a8083fbdbd60f79612",
      "parents": [
        "ee85702c10495041791f728e977b86005c4496e8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 10 00:13:50 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 10 00:13:50 2019 +0100"
      },
      "message": "patch 8.1.2282: crash when passing many arguments through a partial\n\nProblem:    Crash when passing many arguments through a partial. (Andy\n            Massimino)\nSolution:   Check the number of arguments. (closes #5186)\n"
    },
    {
      "commit": "b0745b221d284e381f1bd4b591cd68ea54b6a51d",
      "tree": "7dcb9c03cfc28c3c84359d9f04ec2d41d1173f2c",
      "parents": [
        "dbd4316806389e3c2240b48cc6c4d209cb1665fd"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 09 22:28:11 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 09 22:28:11 2019 +0100"
      },
      "message": "patch 8.1.2280: crash when passing partial to substitute()\n\nProblem:    Crash when passing partial to substitute().\nSolution:   Take extra arguments into account. (closes #5186)\n"
    },
    {
      "commit": "1e673b9eb686459bd0e7fc3f2199dd077546a18e",
      "tree": "a8d0c54830502a5d7409c32f5def265e230cbe23",
      "parents": [
        "177c9f2f06b048f4c1e154d29423edf65b128f8c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Nov 06 15:02:50 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Nov 06 15:02:50 2019 +0100"
      },
      "message": "patch 8.1.2262: unpack assignment in function not recognized\n\nProblem:    Unpack assignment in function not recognized.\nSolution:   Skip over \"[a, b]\". (closes #5051)\n"
    },
    {
      "commit": "14c01f83487d5c53192297a710eda2b8a4ab17c9",
      "tree": "d5c5e8d42ab13b257fd2e17fd7530511a766ba8a",
      "parents": [
        "6bd1d7706766a7899904163e8fd55ea117fb1953"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 09 22:53:08 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 09 22:53:08 2019 +0200"
      },
      "message": "patch 8.1.2127: the indent.c file is a bit big\n\nProblem:    The indent.c file is a bit big.\nSolution:   Move C-indent code a a new cindent.c file.  Move other\n            indent-related code to indent.c. (Yegappan Lakshmanan,\n            closes #5031)\n"
    },
    {
      "commit": "0e57dd859ecb1e8a3b91509d2f4343e839340eb8",
      "tree": "50e5f097f3fe10851e7af017cea6cdef35b12402",
      "parents": [
        "69198cb8c08f124729c41a4681f2d142228a9139"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 16 22:56:03 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 16 22:56:03 2019 +0200"
      },
      "message": "patch 8.1.2047: cannot check the current state\n\nProblem:    Cannot check the current state.\nSolution:   Add the state() function.\n"
    },
    {
      "commit": "c507a2d164cfa3dcf31a7ba9dad6663a17243bb4",
      "tree": "bcae5ea688703043ec12cc7a6c2e36eec1f627ae",
      "parents": [
        "4fb15c647658b15230c61857c644230a03881904"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 29 21:32:55 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 29 21:32:55 2019 +0200"
      },
      "message": "patch 8.1.1938: may crash when out of memory\n\nProblem:    May crash when out of memory.\nSolution:   Initialize v_type to VAR_UNKNOWN. (Dominique Pelle, closes #4871)\n"
    },
    {
      "commit": "e2c453d38f6512ac4cff7cd26aa7780b4e2534d7",
      "tree": "8458a35d59ac43121bfd2d24d5e9f7f54969d0dc",
      "parents": [
        "d933c82ff4e2c910bd533ed9a50377699c3f5ec9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 21 14:37:09 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 21 14:37:09 2019 +0200"
      },
      "message": "patch 8.1.1901: the +insert_expand feature is not always available\n\nProblem:    The +insert_expand feature is not always available.\nSolution:   Graduate the +insert_expand feature.\n"
    },
    {
      "commit": "0a52df50a0e8fce6f5e0eb5f5373dcd0fa24d83a",
      "tree": "9860863c20df3f5354bf67a1d7efe054e23e8a99",
      "parents": [
        "66b51420e0c8d49bcf6786b792c938d6099e3393"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 18 22:26:31 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 18 22:26:31 2019 +0200"
      },
      "message": "patch 8.1.1887: the +cmdline_compl feature is not in the tiny version\n\nProblem:    The +cmdline_compl feature is not in the tiny version.\nSolution:   Graduate the +cmdline_compl feature.\n"
    },
    {
      "commit": "9cfe8f6e68de4bfb5942d84f4465de914a747b3f",
      "tree": "8931b5937762d4e85541ebb2bad68cc0bcc25816",
      "parents": [
        "ffc0716af8e448ef8a2a3249edfd0260546933df"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 17 21:04:16 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 17 21:04:16 2019 +0200"
      },
      "message": "patch 8.1.1878: negative float before method not parsed correctly\n\nProblem:    Negative float before method not parsed correctly.\nSolution:   Apply \"!\" and \"-\" in front of expression before using -\u003e.\n"
    },
    {
      "commit": "9174639a82799011cfa0013cbc4c4709b3833bf0",
      "tree": "fb637c1fd8bde68eb56ca3eabb06a5a1aab69e95",
      "parents": [
        "9c272a9e52c914d6630f2cc887da89f63e7e983a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 16 22:22:31 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 16 22:22:31 2019 +0200"
      },
      "message": "patch 8.1.1863: confusing error when using a builtin function as method\n\nProblem:    Confusing error when using a builtin function as method while it\n            does not support that.\nSolution:   Add a specific error message.\n"
    },
    {
      "commit": "47ed553fd5bebfc36eb8aa81686eeaa5a84eccac",
      "tree": "73dbe93fe15754af8a4384ef66d7f595c9bbb8a6",
      "parents": [
        "8c5a278fc508da6dfe50e69b6ee734451aa4eafb"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 08 20:49:14 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 08 20:49:14 2019 +0200"
      },
      "message": "patch 8.1.1827: allocating more memory than needed for extended structs\n\nProblem:    Allocating more memory than needed for extended structs.\nSolution:   Use offsetof() instead of sizeof(). (Dominique Pelle,\n            closes #4786)\n"
    },
    {
      "commit": "761fdf01c6e307c448cec2684f8b315ba6d1f454",
      "tree": "50681151a6b3ef1d9615fb3b881fc75ef257d20e",
      "parents": [
        "1b6d9c4215a56f3dda4df6e05d655c853551ffbd"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 05 23:10:16 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 05 23:10:16 2019 +0200"
      },
      "message": "patch 8.1.1820: using expr-\u003eFuncRef() does not work\n\nProblem:    Using expr-\u003eFuncRef() does not work.\nSolution:   Make FuncRef work as a method.\n"
    },
    {
      "commit": "fcfe1a9b8950b8b211ab3b24d84b17c6847ea43f",
      "tree": "daeeffb4dd96cdd7744597d9623d222404edd8e2",
      "parents": [
        "7a4ea1df2f85e00286c49db1145e3a38b35557f4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 04 23:04:39 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 04 23:04:39 2019 +0200"
      },
      "message": "patch 8.1.1816: cannot use a user defined function as a method\n\nProblem:    Cannot use a user defined function as a method.\nSolution:   Pass the base as the first argument to the user defined function\n            after \"-\u003e\". (partly by FUJIWARA Takuya)\n"
    },
    {
      "commit": "ac92e25a33c37ec5becbfffeccda136c73b761ac",
      "tree": "64f77cc6dd9427536fd113451b1878490b5298db",
      "parents": [
        "b2129068a55261bea1e293a6a1ce8491a03e7de6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 03 21:58:38 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 03 21:58:38 2019 +0200"
      },
      "message": "patch 8.1.1803: all builtin functions are global\n\nProblem:    All builtin functions are global.\nSolution:   Add the method call operator -\u003e.  Implemented for a limited number\n            of functions.\n"
    },
    {
      "commit": "c6538bcc1cdd1fb83732f22fdc69bd9bb66f968a",
      "tree": "80b89c210388f6e038ccbdc346f72a31bffd8430",
      "parents": [
        "749fa0af85232be1d44b77a09161f71cdbace62c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 03 18:17:11 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 03 18:17:11 2019 +0200"
      },
      "message": "patch 8.1.1800: function call functions have too many arguments\n\nProblem:    Function call functions have too many arguments.\nSolution:   Pass values in a funcexe_T struct.\n"
    },
    {
      "commit": "ecaa75b4cea329a3902b8565e028b32279b8322b",
      "tree": "3d5754f26f8967b0305359912a70dc6f5308cc1f",
      "parents": [
        "5f32ece459d1f310b1b48b72e07dcd77d3261a76"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 21 23:04:21 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 21 23:04:21 2019 +0200"
      },
      "message": "patch 8.1.1729: heredoc with trim not properly handled in function\n\nProblem:    Heredoc with trim not properly handled in function.\nSolution:   Allow for missing indent. (FUJIWARA Takuya, closes #4713)\n"
    },
    {
      "commit": "660a10ad41c14363326f83451c3c425201923119",
      "tree": "98da3e8bf0b6653517fe6142ba9159109aa3d75f",
      "parents": [
        "1850b14c0d338eb27fb32d0d6e0bfb6944c75c5a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 14 15:48:38 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 14 15:48:38 2019 +0200"
      },
      "message": "patch 8.1.1689: profiling code is spread out\n\nProblem:    Profiling code is spread out.\nSolution:   Move more profiling code to profiler.c. (Yegappan Lakshmanan,\n            closes #4668)\n"
    },
    {
      "commit": "fa55cfc69d2b14761e2a8bd85bc1e0d82df770aa",
      "tree": "3420b78d3aa0d58695f9a660592b655ac2f22fb1",
      "parents": [
        "d5abb4c87727eecb71b0e8ffdda60fc9598272f3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 13 22:59:32 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 13 22:59:32 2019 +0200"
      },
      "message": "patch 8.1.1684: profiling functionality is spread out\n\nProblem:    Profiling functionality is spread out.\nSolution:   Put profiling functionality in profiling.c. (Yegappan Lakshmanan,\n            closes #4666)\n"
    },
    {
      "commit": "bc2cfe4672d370330b8698d4d025697a9a6ec569",
      "tree": "143b6302de2fda10d0d0841c88bbfa7852731638",
      "parents": [
        "0d702028feb859e6bde9a0c943d398d86294beb7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 04 14:57:12 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 04 14:57:12 2019 +0200"
      },
      "message": "patch 8.1.1625: script line numbers are not exactly right\n\nProblem:    Script line numbers are not exactly right.\nSolution:   Handle heredoc and continuation lines better. (Ozaki Kiichi,\n            closes #4611, closes #4511)\n"
    },
    {
      "commit": "e96a2498f9a2d3e93ac07431f6d4afd77f30afdf",
      "tree": "9395a92f2de9f49abe63c7fc9f5fe26b1396fb47",
      "parents": [
        "2b044ffb5ada77e6fa89779d6532ea9fae3fe029"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jun 25 04:12:16 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jun 25 04:12:16 2019 +0200"
      },
      "message": "patch 8.1.1588: in :let-heredoc line continuation is recognized\n\nProblem:    In :let-heredoc line continuation is recognized.\nSolution:   Do not consume line continuation. (Ozaki Kiichi, closes #4580)\n"
    },
    {
      "commit": "7be3ab25891fec711d8a2d9d242711a9155852b6",
      "tree": "3dab3f000e881253f5ca0961ea13b8abc2a0d39d",
      "parents": [
        "0fcf26ba4ffaaa6a2fb8d879dc24b5f7e1bb6a13"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 23 01:46:15 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 23 01:46:15 2019 +0200"
      },
      "message": "patch 8.1.1583: set_ref_in_list() only sets ref in items\n\nProblem:    Set_ref_in_list() only sets ref in items.\nSolution:   Rename to set_ref_in_list_items() to avoid confusion.\n"
    },
    {
      "commit": "75a1a9415b9c207de5a29b25c0d1949c6c9c5c61",
      "tree": "470a0887aed4e52e342edbca555e0bec1b85af99",
      "parents": [
        "a3fce62c911c204ae144b55018f6dc9295088850"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 20 03:45:36 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 20 03:45:36 2019 +0200"
      },
      "message": "patch 8.1.1575: callbacks may be garbage collected\n\nProblem:    Callbacks may be garbage collected.\nSolution:   Set reference in callbacks. (Ozaki Kiichi, closes #4564)\n"
    },
    {
      "commit": "6e5000d493b4f385f901eb97f3ce0c8088373403",
      "tree": "b891636c8899ba15790bf631a2ac486efe3bda6d",
      "parents": [
        "ad24a71e2248e839c875c0bc0e6ad3dbeea16998"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 17 21:18:41 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 17 21:18:41 2019 +0200"
      },
      "message": "patch 8.1.1563: crash when using closures\n\nProblem:    Crash when using closures.\nSolution:   Set reference in varlist of funccal when running the garbage\n            collector. (Ozaki Kiichi, closes #4554, closes #4547)\n"
    },
    {
      "commit": "c07f67ad0e9c48a07d49f2d67eb63e183a22386a",
      "tree": "a82a0eee25fe9c4f4c61cc749c85e2b771cbeb62",
      "parents": [
        "75ee544f99ca66be8105570c6309d95435ad30d1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 06 19:03:17 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 06 19:03:17 2019 +0200"
      },
      "message": "patch 8.1.1485: double free when garbage_collect() is used in autocommand\n\nProblem:    Double free when garbage_collect() is used in autocommand.\nSolution:   Have garbage collection also set the copyID in funccal_stack.\n"
    },
    {
      "commit": "3a97bb3f0f8bd118ae23f1c97e55d84ff42eef20",
      "tree": "b7013f43afaaba6ba20b356a7a80fe55add24f1a",
      "parents": [
        "7dd64a3e57d296fdee3b3ffe6d938f634b59848c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 01 13:28:35 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 01 13:28:35 2019 +0200"
      },
      "message": "patch 8.1.1437: code to handle callbacks is duplicated\n\nProblem:    Code to handle callbacks is duplicated.\nSolution:   Add callback_T and functions to deal with it.\n"
    },
    {
      "commit": "c799fe206e61f2e2c1231bc46cbe4bb354f3da69",
      "tree": "68b3d2a8bb82519e29fc95f317d2ee02b07f95fa",
      "parents": [
        "b58a4b938c4bc7e0499700859bd7abba9acc5b11"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 28 23:08:19 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 28 23:08:19 2019 +0200"
      },
      "message": "patch 8.1.1414: alloc() returning \"char_u *\" causes a lot of type casts\n\nProblem:    Alloc() returning \"char_u *\" causes a lot of type casts.\nSolution:   Have it return \"void *\". (Mike Williams)  Define ALLOC_ONE() to\n            check the simple allocations.\n"
    },
    {
      "commit": "18a4ba29aeccb9841d5bfdd2eaaffdfae2f15ced",
      "tree": "408ad339f6b34876d2fa481ac61568c7739b1160",
      "parents": [
        "71de720c2c117137185a6fc233b35aab37f0d4bc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 24 19:39:03 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 24 19:39:03 2019 +0200"
      },
      "message": "patch 8.1.1386: unessesary type casts for lalloc()\n\nProblem:    Unessesary type casts for lalloc().\nSolution:   Remove type casts.  Change lalloc(size, TRUE) to alloc(size).\n"
    },
    {
      "commit": "964b3746b9c81e65887e2ac9a335f181db2bb592",
      "tree": "9afaaac41a1c4f71b359fd6706b88df00e22e7a1",
      "parents": [
        "d33a764123a8aedb20cd84aeff3b94810ee67c4c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 24 18:54:09 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 24 18:54:09 2019 +0200"
      },
      "message": "patch 8.1.1384: using \"int\" for alloc() often results in compiler warnings\n\nProblem:    Using \"int\" for alloc() often results in compiler warnings.\nSolution:   Use \"size_t\" and remove type casts.  Remove alloc_check(), Vim\n            only works with 32 bit ints anyway.\n"
    },
    {
      "commit": "8471e57026714c5a0faf89288ceef5231fb88d4f",
      "tree": "b130d4fb4a56167e3ed26447fa79aec6a08103a5",
      "parents": [
        "16e9b85113e0b354ece1cb4f5fcc7866850f3685"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 19 21:37:18 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 19 21:37:18 2019 +0200"
      },
      "message": "patch 8.1.1356: some text in heredoc assignment ends the text\n\nProblem:    Some text in heredoc assignment ends the text. (Ozaki Kiichi)\nSolution:   Recognize \"let v \u003d\u003c\u003c\" and skip until the end.\n"
    },
    {
      "commit": "6ed8819822994512c160006bd1204aa11ae3c494",
      "tree": "171487d99e5cf0a6c7e5333159d98c821064e93e",
      "parents": [
        "ec28d1516eb8bb5dcaa42de145953a6d49aebb6f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 11 18:37:44 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 11 18:37:44 2019 +0200"
      },
      "message": "patch 8.1.1319: computing function length name in many places\n\nProblem:    Computing function length name in many places.\nSolution:   compute name length in call_func().\n"
    },
    {
      "commit": "42ae78cfff171fbd7412306083fe200245d7a7a6",
      "tree": "20ae99506bc9dfa20816f2c3137e0dd2a9ff09a6",
      "parents": [
        "6b528fa062a5ac6bb5d8bd3abc26f32c65691d00"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 09 21:08:58 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 09 21:08:58 2019 +0200"
      },
      "message": "patch 8.1.1310: named function arguments are never optional\n\nProblem:    Named function arguments are never optional.\nSolution:   Support optional function arguments with a default value. (Andy\n            Massimino, closes #3952)\n"
    },
    {
      "commit": "eae1b91fea74842000fc055afc74fe2e7934c6ee",
      "tree": "71fe047a88c21932a4c919c47b5d19847ee65471",
      "parents": [
        "691ddeefb545d8488e5a495af61caba2e57b3de9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 09 15:12:55 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 09 15:12:55 2019 +0200"
      },
      "message": "patch 8.1.1306: Borland support is outdated and doesn\u0027t work\n\nProblem:    Borland support is outdated and doesn\u0027t work.\nSolution:   Remove Borland support, there are other (free) compilers\n            available. (Thomas Dziedzic, Ken Takata, closes #4364)\n"
    },
    {
      "commit": "ad3ec76bb8030b9a1d3f0a49c374d0de2383b977",
      "tree": "6cc66e85aa0b54ce4ee2e9fcd47987963f022c57",
      "parents": [
        "037c54f261818439755d56e318da068f97997fb5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 21 00:00:13 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 21 00:00:13 2019 +0200"
      },
      "message": "patch 8.1.1194: typos and small problems in source files\n\nProblem:    Typos and small problems in source files.\nSolution:   Small fixes.\n"
    },
    {
      "commit": "209b8e3e3bf7a4a3d102134124120f6c7f57d560",
      "tree": "33987c009f69516962abe91c03672c0a42309c50",
      "parents": [
        "4aa47b28f453b40d3b93ef209a3447c62b6f855b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 14 13:43:24 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 14 13:43:24 2019 +0100"
      },
      "message": "patch 8.1.1007: using closure may consume a lot of memory\n\nProblem:    Using closure may consume a lot of memory.\nSolution:   unreference items that are no longer needed. Add a test. (Ozaki\n            Kiichi, closes #3961)\n"
    },
    {
      "commit": "445e71c5ee06015064cf0642cac8190cfe8fbc59",
      "tree": "c5964dc9d9a42a312859144e86422b5ba9ecb6d8",
      "parents": [
        "b999ba2778b6c02fdd100e498a9ba5b2e7036f7d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Feb 14 13:43:36 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Feb 14 13:43:36 2019 +0100"
      },
      "message": "patch 8.1.0917: double free when running out of memory\n\nProblem:    Double free when running out of memory.\nSolution:   Remove one free. (Ken Takata, closes #3955)\n"
    },
    {
      "commit": "05c00c038bc16e862e17f9e5c8d5a72af6cf7788",
      "tree": "4c7015c7adc01116b60c8a6b19f71d7335f38b93",
      "parents": [
        "5a6698169d10833abad88c98e5a332ddde5d110d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 11 22:00:11 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 11 22:00:11 2019 +0100"
      },
      "message": "patch 8.1.0897: can modify a:000 when using a reference\n\nProblem:    Can modify a:000 when using a reference.\nSolution:   Make check for locked variable stricter. (Ozaki Kiichi,\n            closes #3930)\n"
    },
    {
      "commit": "31b816042fca879b11965ddd75287732563ba698",
      "tree": "44495d2a1b5b7167e29b87be6bb96ad6e71549e4",
      "parents": [
        "9474716d39764ac5642e55b5548580cf53bd9bed"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 10 22:14:27 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 10 22:14:27 2019 +0100"
      },
      "message": "patch 8.1.0888: the a: dict is not immutable as documented\n\nProblem:    The a: dict is not immutable as documented.\nSolution:   Make the a:dict immutable, add a test. (Ozaki Kiichi, Yasuhiro\n            Matsumoto, closes #3929)\n"
    },
    {
      "commit": "889da2f2438c8168f9a25dc776360b81109bad44",
      "tree": "af2570de1da88ea3d01c90af69c894e8ffa07dd9",
      "parents": [
        "65951258d65b71581aeb117dbb7defa8a87ce38f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 02 14:02:30 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 02 14:02:30 2019 +0100"
      },
      "message": "patch 8.1.0868: crash if triggering garbage collector after a function call\n\nProblem:    Crash if triggering garbage collector after a function call.\n            (Michael Henry)\nSolution:   Don\u0027t call the garbage collector right away, do it later.\n            (closes #3894)\n"
    },
    {
      "commit": "29ddebef4038d2d2b3bc9d8d3b0109f4046d6fbf",
      "tree": "66144403e05268df8594b01d0298db4f570ed60f",
      "parents": [
        "3e460fd8b72db905fbf9f01b00371384ffc415b8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 26 17:28:26 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 26 17:28:26 2019 +0100"
      },
      "message": "patch 8.1.0826: too many #ifdefs\n\nProblem:    Too many #ifdefs.\nSolution:   Graduate FEAT_VIRTUALEDIT.  Adds about 10Kbyte to the code.\n"
    },
    {
      "commit": "4456ab527a6a5faae9287f3bd2e52cc18966cfb0",
      "tree": "4b780e00f74b4b12aa61a18beb093908a3264543",
      "parents": [
        "cfc15237ab88ecb78b12030f6e04b87618b56124"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 23 23:00:30 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 23 23:00:30 2019 +0100"
      },
      "message": "patch 8.1.0800: may use a lot of memory when a function refers itself\n\nProblem:    May use a lot of memory when a function creates a cyclic\n            reference.\nSolution:   After saving a funccal many times, invoke the garbage collector.\n            (closes #3835)\n"
    },
    {
      "commit": "113e10721f42fc2500b63fe95193f8665658a90c",
      "tree": "4395acb733cc8d7a798df8f4a91c5c1afa084841",
      "parents": [
        "1f20daa1d784e2d8ae13db5b9c8abbb648dd2a03"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 20 15:30:40 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 20 15:30:40 2019 +0100"
      },
      "message": "patch 8.1.0785: depending on the configuration some functions are unused\n\nProblem:    Depending on the configuration some functions are unused.\nSolution:   Add more #ifdefs, remove unused functions. (Dominique Pelle,\n            closes #3822)\n"
    },
    {
      "commit": "32526b3c1846025f0e655f41efd4e5428da16b6c",
      "tree": "e9f3ea5e0daaada049e905b5f1b38b4a45511f3d",
      "parents": [
        "d383c92ec1d14ffd5c3802f0ffd763e91d547fa8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 19 17:43:09 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 19 17:43:09 2019 +0100"
      },
      "message": "patch 8.1.0779: argument for message functions is inconsistent\n\nProblem:    Argument for message functions is inconsistent.\nSolution:   Make first argument to msg() \"char *\".\n"
    },
    {
      "commit": "f9e3e09fdc93be9f0d47afbc6c7df1188c2a5a0d",
      "tree": "a6b07005c19279a4f5d01be14f14861c2657fa95",
      "parents": [
        "05500ece6282407f9f7227aaf564e24147326863"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 13 23:38:42 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 13 23:38:42 2019 +0100"
      },
      "message": "patch 8.1.0743: giving error messages is not flexible\n\nProblem:    Giving error messages is not flexible.\nSolution:   Add semsg().  Change argument from \"char_u *\" to \"char *\", also\n            for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes\n            #3302)  Also make emsg() accept a \"char *\" argument.  Get rid of\n            an enormous number of type casts.\n"
    },
    {
      "commit": "98aefe7c3250bb5d4153b994f878594d1745424e",
      "tree": "262ae31c2dbf4ac0353f5564a2419a79267fa3ae",
      "parents": [
        "5c5697f29829fc3b21fc5452fe8f239f6a4cb8e1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 13 22:20:09 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 13 22:20:09 2018 +0100"
      },
      "message": "patch 8.1.0579: cannot attach properties to text\n\nProblem:    Cannot attach properties to text.\nSolution:   First part of adding text properties.\n"
    },
    {
      "commit": "ded5f1bed7ff2d138b3ee0f9610d17290b62692d",
      "tree": "54727bd70279df4fadc4b8f4701577ac33282ef5",
      "parents": [
        "1bbb61948342b5cf6e363629f145c65eb455c388"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 10 17:33:29 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 10 17:33:29 2018 +0100"
      },
      "message": "patch 8.1.0515: reloading a script gives errors for existing functions\n\nProblem:    Reloading a script gives errors for existing functions.\nSolution:   Allow redefining a function once when reloading a script.\n"
    },
    {
      "commit": "9e353b5265bd7fa103caf4e5a9b3c99f344f548e",
      "tree": "f160112f470bdd7d72e902ae6d185ce442e27cc3",
      "parents": [
        "ba3ff539303c7bb6e46a6802dce3c7b2e55284e0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 04 23:39:38 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 04 23:39:38 2018 +0100"
      },
      "message": "patch 8.1.0511: ml_get error when calling a function with a range\n\nProblem:    ml_get error when calling a function with a range.\nSolution:   Don\u0027t position the cursor after the last line.\n"
    },
    {
      "commit": "f86db78fed78541cefdb706e4779ce5ae9ca7820",
      "tree": "89b16ab5d0a2847b75bbe3c4ae782a0a03d6626f",
      "parents": [
        "babfcf54ae9bf9570eddf4958a553635cd589e21"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Oct 25 13:31:37 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Oct 25 13:31:37 2018 +0200"
      },
      "message": "patch 8.1.0495: :filter only supports some commands\n\nProblem:    :filter only supports some commands.\nSolution:   Add :filter support for more commands. (Marcin Szamotulski,\n            closes #2856)\n"
    },
    {
      "commit": "27e80c885bcb5c5cf6a6462d71d6c81b06ba2451",
      "tree": "5f23ab7eeb2ddc833a739d7c0ac62c0dd3a2e863",
      "parents": [
        "a16bc5450359294f9d8585da9f74e5082108b7fb"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 14 21:41:01 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 14 21:41:01 2018 +0200"
      },
      "message": "patch 8.1.0475: memory not freed on exit when quit in autocmd\n\nProblem:    Memory not freed on exit when quit in autocmd.\nSolution:   Remember funccal stack when executing autocmd.\n"
    },
    {
      "commit": "4c7b08f6409349cf5324a26f7523c438590550ef",
      "tree": "d742059c88721a93968729981fc512d8435bbaa3",
      "parents": [
        "e797abf3c75358ebc0b31d6e076972daf889e06e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 10 22:03:40 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 10 22:03:40 2018 +0200"
      },
      "message": "patch 8.1.0365: function profile doesn\u0027t specify where it was defined\n\nProblem:    Function profile doesn\u0027t specify where it was defined.\nSolution:   Show the script name and line number.\n"
    },
    {
      "commit": "f29c1c6aa3f365c025890fab5fb9efbe88eb1761",
      "tree": "3cd43ee75a7e0fbdce4902426512ae804b1c7ff0",
      "parents": [
        "6b0b83f768cf536b34ce4d3f2de6bf62324229aa"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 10 21:05:02 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 10 21:05:02 2018 +0200"
      },
      "message": "patch 8.1.0362: cannot get the script line number when executing a function\n\nProblem:    Cannot get the script line number when executing a function.\nSolution:   Store the line number besides the script ID. (Ozaki Kiichi,\n            closes #3362)  Also display the line number with \":verbose set\".\n"
    },
    {
      "commit": "79c2ad50b8069bbb3281bcabe412bd6641756724",
      "tree": "61b383cdc2fb979a3a59c6cf95effb8643ae64bf",
      "parents": [
        "92d147be959e689f8f58fd5d138a31835e160289"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 29 17:40:43 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 29 17:40:43 2018 +0200"
      },
      "message": "patch 8.1.0229: crash when dumping profiling data\n\nProblem:    Crash when dumping profiling data.\nSolution:   Reset flag indicating that initialization was done.\n"
    },
    {
      "commit": "93343725b5fa1cf580a24302455980faacae8ee2",
      "tree": "0467626f476965cd0f6042fec8745f3910e42d9b",
      "parents": [
        "18085fae7482906f8e94ecc7386ecf6a02dc407d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 10 19:39:18 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 10 19:39:18 2018 +0200"
      },
      "message": "patch 8.1.0177: defining function in sandbox is inconsistent\n\nProblem:    Defining function in sandbox is inconsistent, cannot use :function\n            but can define a lambda.\nSolution:   Allow defining a function in the sandbox, but also use the sandbox\n            when executing it. (closes #3182)\n"
    },
    {
      "commit": "c89d4b35300b98cf68b14c89c8e1add51bd857e3",
      "tree": "467d753ac74270da629887f484f797509696d302",
      "parents": [
        "e0be167a805fd547c25ec1ec97fd4c7f13046236"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 08 17:19:02 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 08 17:19:02 2018 +0200"
      },
      "message": "patch 8.1.0167: lock flag in new dictitem is reset in many places\n\nProblem:    Lock flag in new dictitem is reset in many places.\nSolution:   Always reset the lock flag.\n"
    },
    {
      "commit": "ad6480961080f80a455b2394f27b02935a2ded52",
      "tree": "d857cca5de9f29740f9604310272e88f2ea0ef1b",
      "parents": [
        "668324ef4fd59980dc57b2eefe57eddc57c7b920"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 30 18:28:03 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 30 18:28:03 2018 +0200"
      },
      "message": "patch 8.1.0130: \":profdel func\" does not work if func was called already\n\nProblem:    \":profdel func\" does not work if func was called already.\n            (Dominique Pelle)\nSolution:   Reset uf_profiling and add a flag to indicate initialization was\n            done.\n"
    },
    {
      "commit": "b4518563c73460150344a57879bf5b22cb8b1c77",
      "tree": "bd32958994688a8d0116ce8961dee863c4d282c1",
      "parents": [
        "bdb657924d73c98b0ab28411749571e893b699a9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 22 18:31:35 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 22 18:31:35 2018 +0200"
      },
      "message": "patch 8.1.0019: error when defining a Lambda with index of a function result\n\nProblem:    Error when defining a Lambda with index of a function result.\nSolution:   When not evaluating an expression and skipping a function call,\n            set the return value to VAR_UNKNOWN.\n"
    },
    {
      "commit": "f2bd8ef2b4507d02c6043affff8f7e85e3414d5f",
      "tree": "f14cb8e7ff09975920f3a813d7de4851a2972661",
      "parents": [
        "3f54fd319f6641b4bed478bcc90cdb39ede68e31"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 04 18:08:14 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 04 18:08:14 2018 +0100"
      },
      "message": "patch 8.0.1564: too many #ifdefs\n\nProblem:    Too many #ifdefs.\nSolution:   Graduate the +autocmd feature. Takes away 450 #ifdefs and\n            increases code size of tiny Vim by only 40 Kbyte.\n"
    },
    {
      "commit": "c6f9f739d32084923c3031cbf6f581f8c8bf7fd2",
      "tree": "4f20ee6cbf98f72b164337f14251020ecc07d410",
      "parents": [
        "c33ecb291518044f661c5fc10b704fc718321794"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 11 19:06:26 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 11 19:06:26 2018 +0100"
      },
      "message": "patch 8.0.1505: debugger can\u0027t break on a condition\n\nProblem:    Debugger can\u0027t break on a condition. (Charles Campbell)\nSolution:   Add \":breakadd expr\". (Christian Brabandt, closes #859)\n"
    },
    {
      "commit": "d23a823669d93fb2a570a039173eefe4856ac806",
      "tree": "617130258eae70e3bd7ef7b6da9c494ffee7b572",
      "parents": [
        "42443c7d7fecc3a2a72154bb6139b028438617c2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 10 18:45:26 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 10 18:45:26 2018 +0100"
      },
      "message": "patch 8.0.1496: clearing a pointer takes two lines\n\nProblem:    Clearing a pointer takes two lines.\nSolution:   Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi,\n            closes #2629)\n"
    },
    {
      "commit": "fabaf753e26df5a89a854673d14c15a1fa6b321a",
      "tree": "511e8530aaaa84f9fc2bb08459f156deb2b528e7",
      "parents": [
        "45a0000d5c4a5ea934d5a16a2ab5bbcf307623ac"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Dec 23 17:26:11 2017 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Dec 23 17:26:11 2017 +0100"
      },
      "message": "patch 8.0.1423: error in return not caught by try/catch\n\nProblem:    Error in return not caught by try/catch.\nSolution:   Call update_force_abort(). (Yasuhiro Matsomoto, closes #2483)\n"
    },
    {
      "commit": "3388d334572f9d65a603d09d75e363805d96c5d9",
      "tree": "181aa5869c33377419fccbcc140801cfeeeffc23",
      "parents": [
        "6e65d594aa33be11f6074f26e9ff81b52504c62b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 07 22:23:04 2017 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 07 22:23:04 2017 +0100"
      },
      "message": "patch 8.0.1378: autoload script sources itself when defining function\n\nProblem:    Autoload script sources itself when defining function.\nSolution:   Pass TFN_NO_AUTOLOAD to trans_function_name(). (Yasuhiro\n            Matsumoto, closes #2423)\n"
    },
    {
      "commit": "6e65d594aa33be11f6074f26e9ff81b52504c62b",
      "tree": "a3c542e974c6c576792e6b3c7541907926e1b445",
      "parents": [
        "23c1b2b018c8121ca5fcc247e37966428bf8ca66"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 07 22:11:27 2017 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 07 22:11:27 2017 +0100"
      },
      "message": "patch 8.0.1377: cannot call a dict function in autoloaded dict\n\nProblem:    Cannot call a dict function in autoloaded dict.\nSolution:   Call get_lval() passing the read-only flag.\n"
    },
    {
      "commit": "53564f7c1a2998d92568e07fff1f2a4c1cecb646",
      "tree": "161f99431749a8300e546b67d7c750f934522a4c",
      "parents": [
        "5fe691240bff11e9618252486147f0156e875666"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 24 14:48:11 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 24 14:48:11 2017 +0200"
      },
      "message": "patch 8.0.0667: memory access error when command follows :endfunc\n\nProblem:    Memory access error when command follows :endfunction. (Nikolai\n            Pavlov)\nSolution:   Make memory handling in :function straightforward. (closes #1793)\n"
    },
    {
      "commit": "f8be461d0284110b321be748fea206d4169b98bb",
      "tree": "a066ff1a758151312ec2d7af5bcff2edc869be3a",
      "parents": [
        "4670490673ed98502a09b74fbabe785b47e3d289"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jun 23 20:52:40 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jun 23 20:52:40 2017 +0200"
      },
      "message": "patch 8.0.0663: unexpected error message only when \u0027verbose\u0027 is set\n\nProblem:    Giving an error message only when \u0027verbose\u0027 set is unexpected.\nSolution:   Give a warning message instead.\n"
    },
    {
      "commit": "d6abcd154cdc6a8dd4b7c6ccad37617ea8a1b4aa",
      "tree": "746839083abe888f4424f18c38ac634eec06981b",
      "parents": [
        "663bb2331626944cea156374858131fcd323b9e9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 22 19:15:24 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 22 19:15:24 2017 +0200"
      },
      "message": "patch 8.0.0655: not easy to make sure a function does not exist\n\nProblem:    Not easy to make sure a function does not exist.\nSolution:   Add ! as an optional argument to :delfunc.\n"
    },
    {
      "commit": "663bb2331626944cea156374858131fcd323b9e9",
      "tree": "a6cc8157e602bbfc3903dec711f82db3bc8dcb56",
      "parents": [
        "c768a208ca8e0e0fec900c18d5d9a593357ad793"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 22 19:12:10 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 22 19:12:10 2017 +0200"
      },
      "message": "patch 8.0.0654: no warning for text after :endfunction\n\nProblem:    Text found after :endfunction is silently ignored.\nSolution:   Give a warning if \u0027verbose\u0027 is set.  When | or \\n are used,\n            execute the text as a command.\n"
    },
    {
      "commit": "d4863aa99e0527e9505c79cbeafc68a6832200bf",
      "tree": "2ea60d3eb3f29982b5188d86c7df63665d278d72",
      "parents": [
        "52604f2454e5369f861d3ce34764f74a0999c773"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 07 19:50:12 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 07 19:50:12 2017 +0200"
      },
      "message": "patch 8.0.0548: saving the redo buffer only works one time\n\nProblem:    Saving the redo buffer only works one time, resulting in the \".\"\n            command not working well for a function call inside another\n            function call. (Ingo Karkat)\nSolution:   Save the redo buffer at every user function call. (closes #1619)\n"
    },
    {
      "commit": "6914c64ee58ce68f31fb8a8793293a9b3f2f6240",
      "tree": "f9cedc4d5a8843dcedfd2395dee2f3f040f77f3e",
      "parents": [
        "33ccb24cf7891911561adccf9f2af8859e581198"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 01 21:21:30 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 01 21:21:30 2017 +0200"
      },
      "message": "patch 8.0.0535: memory leak when exiting from within a user function\n\nProblem:    Memory leak when exiting from within a user function.\nSolution:   Clear the function call stack on exit.\n"
    },
    {
      "commit": "8820b48654b62472821d9b155fe03ab7ac13a05c",
      "tree": "7783a4068aee8368661722d5171d33a4d410d6bb",
      "parents": [
        "40ebc0afda8d8e478d2090133ed6a3cd3d8da3ec"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 16 17:23:31 2017 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 16 17:23:31 2017 +0100"
      },
      "message": "patch 8.0.0466: still macros that should be all-caps\n\nProblem:    There are still a few macros that should be all-caps.\nSolution:   Make a few more macros all-caps.\n"
    },
    {
      "commit": "1c46544412382db8b3203d6c78e550df885540bd",
      "tree": "d4dc51020d3ebdbee4548b0d5628221f921af2f3",
      "parents": [
        "91acfffc1e6c0d8c2abfb186a0e79a5bf19c3f3f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 12 20:10:05 2017 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 12 20:10:05 2017 +0100"
      },
      "message": "patch 8.0.0452: some macros are in lower case\n\nProblem:    Some macros are in lower case.\nSolution:   Make a few more macros upper case.\n"
    },
    {
      "commit": "03ff9bcbc968f7d306e4a4e334e226fdde62ca82",
      "tree": "984162dfb8d3ef4e8535a62a974067979d743836",
      "parents": [
        "fd8983b09c64d9bfa8a4bdc16d72c55fbb22b4dc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Feb 02 22:59:27 2017 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Feb 02 22:59:27 2017 +0100"
      },
      "message": "patch 8.0.0297: double free on exit when using a closure\n\nProblem:    Double free on exit when using a closure. (James McCoy)\nSolution:   Split free_al_functions in two parts. (closes #1428)\n"
    },
    {
      "commit": "c7d9eacefa319e5ac3b3b2334fda5acb126b8716",
      "tree": "1ba3f11d8a803e7d20c804050f43d2427ff88606",
      "parents": [
        "c10f0e7cb0f35eea489b038e56c87b818eee975b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 01 20:26:51 2017 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 01 20:26:51 2017 +0100"
      },
      "message": "patch 8.0.0287: debug mode: cannot access function arguments\n\nProblem:    Cannot access the arguments of the current function in debug mode.\n            (Luc Hermitte)\nSolution:   use get_funccal(). (Lemonboy, closes #1432, closes #1352)\n"
    },
    {
      "commit": "f42dd3c3901ea0ba38e67a616aea9953cae81b8d",
      "tree": "3626ca40161dbfaa5e72a4dbeaa46b24480ddc8c",
      "parents": [
        "0c0590d9827cb07a33c1552cb3558b94bddcb4dc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 28 16:06:38 2017 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 28 16:06:38 2017 +0100"
      },
      "message": "patch 8.0.0251: not easy to select Python 2 or 3\n\nProblem:    It is not so easy to write a script that works with both Python 2\n            and Python 3, even when the Python code works with both.\nSolution:   Add \u0027pyxversion\u0027, :pyx, etc. (Marc Weber, Ken Takata)\n"
    },
    {
      "commit": "70bcd7336f9f19304f32c52a86ed5b4b3de852c2",
      "tree": "c86ac70eb20a379b25b68ddab914393c25e04fa6",
      "parents": [
        "972c3b8f1b50e2f887a397c324af99eb354aad0b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 12 22:20:54 2017 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 12 22:20:54 2017 +0100"
      },
      "message": "patch 8.0.0176: cannot use :change inside a function definition\n\nProblem:    Using :change in between :function and :endfunction fails.\nSolution:   Recognize :change inside a function. (ichizok, closes #1374)\n"
    },
    {
      "commit": "95f096030ed1a8afea028f2ea295d6f6a70f466f",
      "tree": "9b1dcdbbe678ad1a3152f5cfd70a136efce6bc92",
      "parents": [
        "459ca563128f2edb7e3bb190090bbb755a56dd55"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Nov 10 20:01:45 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Nov 10 20:01:45 2016 +0100"
      },
      "message": "patch 8.0.0074\nProblem:    Cannot make Vim fail on an internal error.\nSolution:   Add IEMSG() and IEMSG2(). (Domenique Pelle)  Avoid reporting an\n            internal error without mentioning where.\n"
    },
    {
      "commit": "edf3f97ae2af024708ebb4ac614227327033ca47",
      "tree": "82fed9ebfc85a69d3cff613f9dab11c8750fad8b",
      "parents": [
        "965ed14973fd3f1b2aace7bae4d4722b71ca04f9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 29 22:49:24 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 29 22:49:24 2016 +0200"
      },
      "message": "patch 7.4.2293\nProblem:    Modelines in source code are inconsistant.\nSolution:   Use the same line in most files.  Add \u0027noet\u0027.  (Naruhiko Nishino)\n"
    },
    {
      "commit": "ba2099034f92a2814494f37bddb0c57d034401b4",
      "tree": "523a827eec2dea1e57deae617b196a78a46fbc55",
      "parents": [
        "358308dd99abdd56c6540339e505585d8db7bdfe"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 24 22:06:38 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 24 22:06:38 2016 +0200"
      },
      "message": "patch 7.4.2249\nProblem:    Missing colon in error message.\nSolution:   Add the colon. (Dominique Pelle)\n"
    },
    {
      "commit": "c257487035f83aabe1c7e07f0552309e98f1bcb1",
      "tree": "a2ab08ae7d067a1c5eba06a677f8480c5a166f6b",
      "parents": [
        "91c5262b19fd2e558fe87b78c7767c7c5a270be8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 11 22:51:05 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 11 22:51:05 2016 +0200"
      },
      "message": "patch 7.4.2197\nProblem:    All functions are freed on exit, which may hide leaks.\nSolution:   Only free named functions, not reference counted ones.\n"
    },
    {
      "commit": "bc7ce675b2d1c9fb58c067eff3edd59abc30aba4",
      "tree": "df3fc4f3d1467680240f95d5cf51d65eae88cb86",
      "parents": [
        "8dd3a43d75550e9b5736066124c97697564f769e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 22:49:22 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 22:49:22 2016 +0200"
      },
      "message": "patch 7.4.2143\nProblem:    A funccal is garbage collected while it can still be used.\nSolution:   Set copyID in all referenced functions.  Do not list lambda\n            functions with \":function\".\n"
    },
    {
      "commit": "8dd3a43d75550e9b5736066124c97697564f769e",
      "tree": "5768a06605c7ffaacfbb8aa385060cc7be223fec",
      "parents": [
        "ba96e9af388804364425185b47eed14988302865"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 20:46:25 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 20:46:25 2016 +0200"
      },
      "message": "patch 7.4.2142\nProblem:    Leaking memory when redefining a function.\nSolution:   Don\u0027t increment the function reference count when it\u0027s found by\n            name. Don\u0027t remove the wrong function from the hashtab.  More\n            reference counting fixes.\n"
    },
    {
      "commit": "ba96e9af388804364425185b47eed14988302865",
      "tree": "abe4a6a6510450ffa99dfdf47e23f94fa80bb5e9",
      "parents": [
        "acadbeabe1dafb314ae5fdba0432f313e55bb3a2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 17:10:20 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 17:10:20 2016 +0200"
      },
      "message": "patch 7.4.2141\nProblem:    Coverity reports bogus NULL check.\nSolution:   When checking for a variable in the funccal scope don\u0027t pass the\n            varname.\n"
    },
    {
      "commit": "0588d4f9d2741f35a271400a37fddbdd72d84219",
      "tree": "b74126a783b0d3f644d065640fa66751a6ed3e2a",
      "parents": [
        "2d3d60a7d4b410668dfc427120205ccf88789db4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 16:29:47 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 16:29:47 2016 +0200"
      },
      "message": "patch 7.4.2139\nProblem:    :delfunction causes illegal memory access.\nSolution:   Correct logic when deciding to free a function.\n"
    },
    {
      "commit": "437bafe4c8a83ed71ee006eda7f54b65a90f0d4c",
      "tree": "dac9426b1bafe44f050bbb13c027de31117c089d",
      "parents": [
        "580164481924ed8611eb79f0247a0eb1ca0b3b9a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 15:40:54 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 15:40:54 2016 +0200"
      },
      "message": "patch 7.4.2137\nProblem:    Using function() with a name will find another function when it is\n            redefined.\nSolution:   Add funcref().  Refer to lambda using a partial.  Fix several\n            reference counting issues.\n"
    },
    {
      "commit": "580164481924ed8611eb79f0247a0eb1ca0b3b9a",
      "tree": "e50e7203296df3899b91e2e1ceec01d115f4798e",
      "parents": [
        "89eaa4185efacab253b23a182c1c8a7bbf1096c9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 31 18:30:22 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 31 18:30:22 2016 +0200"
      },
      "message": "patch 7.4.2136\nProblem:    Closure function fails.\nSolution:   Don\u0027t reset uf_scoped when it points to another funccal.\n"
    },
    {
      "commit": "b54c3ff3174dbb5dfbfcabdf95200b047beaa644",
      "tree": "a230032c07f9373c65ca64e4b9c237e70b4d6a54",
      "parents": [
        "fc1f2015e833e69b89b994faf4b2c4fc1e09220f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 31 14:11:58 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 31 14:11:58 2016 +0200"
      },
      "message": "patch 7.4.2134\nProblem:    No error for using function() badly.\nSolution:   Check for passing wrong function name. (Ken Takata)\n"
    }
  ],
  "next": "10ce39a0d52272a3dfff2feb8c631529f29e6740"
}
