)]}'
{
  "log": [
    {
      "commit": "29269a71b5ac8a87c6c4beca35c173a19a2c9398",
      "tree": "64da5504c5544f9d9e0ead921246bc0ad7caef0c",
      "parents": [
        "f7d31adcc22eae852d6e7a5b59e9755ba7b51d35"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Apr 16 22:44:31 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Apr 16 22:44:31 2024 +0200"
      },
      "message": "patch 9.1.0341: Problem: a few memory leaks are found\n\nProblem:  a few memory leaks are found\n          (LuMingYinDetect )\nSolution: properly free the memory\n\nFixes the following problems:\n- Memory leak in f_maplist()\n  fixes: #14486\n\n- Memory leak in option.c\n  fixes: #14485\n\n- Memory leak in f_resolve()\n  fixes: #14484\n\n- Memory leak in f_autocmd_get()\n  related: #14474\n\n- Memory leak in dict_extend_func()\n  fixes: #14477\n  fixes: #14238\n\ncloses: #14517\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "e79e2077607e8f829ba823308c91104a795736ba",
      "tree": "e3e126ee9503e37e90e83868aa1c0ac42e359ccb",
      "parents": [
        "d8cb1ddab7b8cb19267a8877d62bbe3a06626fa2"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Sat Jan 13 11:47:33 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Jan 13 11:47:33 2024 +0100"
      },
      "message": "patch 9.1.0027: Vim is missing a foreach() func\n\nProblem:  Vim is missing a foreach() func\nSolution: Implement foreach({expr1}, {expr2}) function,\n          which applies {expr2} for each item in {expr1}\n          without changing it (Ernie Rael)\n\ncloses: #12166\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "fa831102c38c9192edf3aaf0cbcaff9ee5e006ac",
      "tree": "6643f2b8d5784dd0b9571fe9a53590a2102524a5",
      "parents": [
        "2a71b54d35361f3f0c24db88c672b426f8acc7b7"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Thu Dec 14 20:06:39 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Dec 14 20:06:39 2023 +0100"
      },
      "message": "patch 9.0.2163: Vim9: type can be assigned to list/dict\n\nProblem:  Vim9: type can be assigned to list/dict\nSolution: Prevent assigning a `type` to a `list` or `dict`\n\ncloses: #13683\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "fc3058495d3ff58c8f2b9dd4452d0840f2d1fa42",
      "tree": "127690c7f9017ca1239d10f551835db450edf787",
      "parents": [
        "c3172fe9e4d3ea7f705b5fc02fdb0c4ceb3df8b9"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sat Aug 19 13:27:03 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 13:27:03 2023 +0200"
      },
      "message": "patch 9.0.1745: Missing test coverage for blockwise Visual highlight\n\nProblem:  Missing test coverage for blockwise Visual highlight with\n          virtual that starts with a double-width char.\nSolution: Add a new virtual text to the test. Some other small fixes.\n\ncloses: #12835\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "e7d49465a4ad390c1b0fb6d6b97bc30241fe5db9",
      "tree": "1ad57eac5490d8d424696ab81b15a7c2a256cfcd",
      "parents": [
        "a77670726e3706973adffc2b118f4576e1f58ea0"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sun Apr 16 20:53:55 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 16 20:53:55 2023 +0100"
      },
      "message": "patch 9.0.1459: typo in name of type\n\nProblem:    Typo in name of type.\nSolution:   Change funccal_T to funccall_T. (closes #12265)\n"
    },
    {
      "commit": "e6d40dcdc7227594935d2db01eca29f0e575dcee",
      "tree": "cceadc9510c19f5ba8f99e26954bf8fbef40b6d6",
      "parents": [
        "7c4516fe93d865f4ef1877181f8156b8b9331856"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Sun Mar 19 21:23:38 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 19 21:23:38 2023 +0000"
      },
      "message": "patch 9.0.1416: crash when collection is modified when using filter()\n\nProblem:    Crash when collection is modified when using filter().\nSolution:   Lock the list/dict/blob. (Ernie Rael, closes #12183)\n"
    },
    {
      "commit": "14113fdf9cb3d588c0d1c3a210246b981cf5aad3",
      "tree": "a0f17ad3f6c5b31a0463e452122ba9e5aaa9705a",
      "parents": [
        "663ee88a8260d69d9310e22f2bfdec49af6a102e"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Mar 07 17:13:51 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 07 17:13:51 2023 +0000"
      },
      "message": "patch 9.0.1390: FOR_ALL_ macros are defined in an unexpected file\n\nProblem:    FOR_ALL_ macros are defined in an unexpected file.\nSolution:   Move FOR_ALL_ macros to macros.h.  Add FOR_ALL_HASHTAB_ITEMS.\n            (Yegappan Lakshmanan, closes #12109)\n"
    },
    {
      "commit": "1cfb14aa972ccf3235ac67f07b7db1175b7c5384",
      "tree": "b746eda548993b9e0987d7c9c0c543ddddc5758f",
      "parents": [
        "765d82a657c5e42d5d7c88ae410e53f398c34c43"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Jan 09 19:04:23 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 09 19:04:23 2023 +0000"
      },
      "message": "patch 9.0.1166: code is indented more than necessary\n\nProblem:    Code is indented more than necessary.\nSolution:   Use an early return where it makes sense. (Yegappan Lakshmanan,\n            closes #11792)\n"
    },
    {
      "commit": "a9fa8c58fbcc5cf8850f6963c509de272f4d4bbf",
      "tree": "891f3c44b937d7a4a7492b83826ca114c31f22ff",
      "parents": [
        "dc4daa3a3915fba11ac87d27977240d9a5e0d47d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 02 18:10:04 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 02 18:10:04 2023 +0000"
      },
      "message": "patch 9.0.1133: error message names do not match the items\n\nProblem:    Error message names do not match the items.\nSolution:   Add \"_str\" when the text contains \"%s\".\n"
    },
    {
      "commit": "87c1cbbe984e60582f2536e4d3c2ce88cd474bb7",
      "tree": "34257b73179d88eb605876661cb81ad37b4e2f30",
      "parents": [
        "56310d38d8e866085108c7b77b756f4373d5122a"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Dec 27 19:54:52 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 27 19:54:52 2022 +0000"
      },
      "message": "patch 9.0.1105: code is indented too much\n\nProblem:    Code is indented too much.\nSolution:   Use an early return. (Yegappan Lakshmanan, closes #11756)\n"
    },
    {
      "commit": "ef2c325f5e3c437b722bb96bf369ba2a5c541163",
      "tree": "dc85f0dc98dce1937b459d8d3882473f25db03c3",
      "parents": [
        "c1cf4c91072f91b6b8dd636627a4ddf6f4b21f16"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Nov 25 16:31:51 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Nov 25 16:31:51 2022 +0000"
      },
      "message": "patch 9.0.0949: crash when unletting a variable while listing variables\n\nProblem:    Crash when unletting a variable while listing variables.\nSolution:   Disallow changing a hashtable while going over the entries.\n            (closes #11435)\n"
    },
    {
      "commit": "bc222152d8dea252aa5f1fa24b5536ed269feb92",
      "tree": "bab73ad7c0b1a03b1cd761b90711adb8e18f29c5",
      "parents": [
        "df3c0eb41e1f48596c85af88b42fed22e3cca328"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Nov 23 11:34:01 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Nov 23 11:34:01 2022 +0000"
      },
      "message": "patch 9.0.0926: Coverity warns for not using return value of dict_add()\n\nProblem:    Coverity warns for not using return value of dict_add().\nSolution:   When dict_add() fails then don\u0027t call hash_remove().\n"
    },
    {
      "commit": "35fc61cb5b5eba8bbb9d8f0700332fbab38f40ca",
      "tree": "352599f641e6c8c88d8574871f8b8e86b6168dba",
      "parents": [
        "ce30ccc06af7f2c03762e5b18dde37b26ea6ec42"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Nov 22 12:40:50 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Nov 22 12:40:50 2022 +0000"
      },
      "message": "patch 9.0.0917: the WinScrolled autocommand event is not enough\n\nProblem:    The WinScrolled autocommand event is not enough.\nSolution:   Add WinResized and provide information about what changed.\n            (closes #11576)\n"
    },
    {
      "commit": "91c75d18d9cdc32df57e648640de7476fbcb4d76",
      "tree": "9fa0460b1c499a272b85c5613b5c546f2ff37c93",
      "parents": [
        "845bbb72ed2da4b5fb2a503d91cfd6435df2f584"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sat Nov 05 20:21:58 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 05 20:21:58 2022 +0000"
      },
      "message": "patch 9.0.0836: wrong error when using extend() with funcref\n\nProblem:    Wrong error when using extend() with funcref.\nSolution:   Better check the variable type. (closes #11468, closes #11455)\n"
    },
    {
      "commit": "c57b5bcd22826e0852c2bc9c7d4382e1cac7cb74",
      "tree": "d5163254047cdaa5cedd5caa4745727f6124eaf3",
      "parents": [
        "1410d1841bfc4370dec1babe24c6664e06d7c9d9"
      ],
      "author": {
        "name": "dundargoc",
        "email": "gocdundar@gmail.com",
        "time": "Wed Nov 02 13:30:51 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Nov 02 13:30:51 2022 +0000"
      },
      "message": "patch 9.0.0828: various typos\n\nProblem:    Various typos.\nSolution:   Correct typos. (closes #11432)\n"
    },
    {
      "commit": "82418263fa91792e851cb0de879d1595327d5531",
      "tree": "e14f38d9dba9dce01e0c3b6c6612ca577bf27b49",
      "parents": [
        "1936c765364d6a771cea5df9971318060db82730"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 28 16:16:15 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 28 16:16:15 2022 +0100"
      },
      "message": "patch 9.0.0618: calling function for reduce() has too much overhead\n\nProblem:    Calling function for reduce() has too much overhead.\nSolution:   Do not create a funccall_T every time.\n"
    },
    {
      "commit": "73e28dcc6125f616cf1f2d56443d22428a79e434",
      "tree": "bc26b3d1bb2e1675b7dae14b6c9cda1cd42c90d6",
      "parents": [
        "1c3dd8ddcba63c1af5112e567215b3cec2de11d0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 17 21:08:33 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 17 21:08:33 2022 +0100"
      },
      "message": "patch 9.0.0491: no good reason to build without the float feature\n\nProblem:    No good reason to build without the float feature.\nSolution:   Remove configure check for float and \"#ifdef FEAT_FLOAT\".\n"
    },
    {
      "commit": "7c7e1e9b98d4e5dbe7358c795a635c6f1f36f418",
      "tree": "3a7dae3fb1a09b2cd07325dac4e0ae827154eda5",
      "parents": [
        "fef38d86a1fc3790d2ca7fc4b3e45071c1d8c79c"
      ],
      "author": {
        "name": "ii14",
        "email": "ii14@users.noreply.github.com",
        "time": "Wed Sep 07 19:40:17 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 07 19:40:17 2022 +0100"
      },
      "message": "patch 9.0.0409: #{g:x} was seen as a curly-braces expression\n\nProblem:    #{g:x} was seen as a curly-braces expression.\nSolution:   Do never see #{} as a curly-braces expression. (closes #11075)\n"
    },
    {
      "commit": "04c4c5746e15884768d2cb41370c3276a196cd4c",
      "tree": "1e629820796635bd332b2066c03d548fad527f89",
      "parents": [
        "f240395fca63d4b330112a4b81e94b05b50de1aa"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Aug 30 19:48:24 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 30 19:48:24 2022 +0100"
      },
      "message": "patch 9.0.0335: checks for Dictionary argument often give a vague error\n\nProblem:    Checks for Dictionary argument often give a vague error message.\nSolution:   Give a useful error message. (Yegappan Lakshmanan, closes #11009)\n"
    },
    {
      "commit": "3e518a8ec74065aedd67d352c93d6ae6be550316",
      "tree": "239505fa04b1012bfccad56d6cc3f7f6517bfe78",
      "parents": [
        "f92cfb1acc3fef74eef0c83c1a35a2b6a9f93a9b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 30 17:45:33 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 30 17:45:33 2022 +0100"
      },
      "message": "patch 9.0.0331: cannot use items() on a string\n\nProblem:    Cannot use items() on a string.\nSolution:   Make items() work on a string. (closes #11016)\n"
    },
    {
      "commit": "976f859763b215050a03248dbc2bb62fa5d0d059",
      "tree": "36bc5a92c8eb8cf57c0116e21c9a36679993fba4",
      "parents": [
        "0e412be00f8290e0575c7f72ec080725631eff38"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 30 14:34:52 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 30 14:34:52 2022 +0100"
      },
      "message": "patch 9.0.0327: items() does not work on a list\n\nProblem:    items() does not work on a list. (Sergey Vlasov)\nSolution:   Make items() work on a list. (closes #11013)\n"
    },
    {
      "commit": "d61efa50f8f5b9d9dcbc136705cc33874f0fdcb3",
      "tree": "7ca7416ffda546d9f45ba93d3c93f3418bd6bcd0",
      "parents": [
        "5ac50de83f1b4136f903c51a1d4e7d84a26c2271"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 23 09:52:04 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 23 09:52:04 2022 +0100"
      },
      "message": "patch 9.0.0063: too many type casts for dict_get functions\n\nProblem:    Too many type casts for dict_get functions.\nSolution:   Change the key argument from \"char_u *\" to \"char *\".\n"
    },
    {
      "commit": "ca195cc84fb3f5e497cdbc5f1f53dc1d7efedf48",
      "tree": "709beb58d68cd3433060720a1c81cbfe6228715f",
      "parents": [
        "cd7496382efc9e6748326c6cda7f01003fa07063"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Jun 14 13:42:26 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jun 14 13:42:26 2022 +0100"
      },
      "message": "patch 8.2.5089: some functions return a different value on failure\n\nProblem:    Some functions return a different value on failure.\nSolution:   Initialize the return value earlier. (Yegappan Lakshmanan,\n            closes #10568)\n"
    },
    {
      "commit": "0abc2871c105882ed1c1effb9a7757fad8a395bd",
      "tree": "0377e3f47b0fda6713cc0e8b6426616457e07912",
      "parents": [
        "57ff52677bf5ba1651281ffe40505df8feba4a36"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 10 13:24:30 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 10 13:24:30 2022 +0100"
      },
      "message": "patch 8.2.4930: interpolated string expression requires escaping\n\nProblem:    Interpolated string expression requires escaping.\nSolution:   Do not require escaping in the expression.\n"
    },
    {
      "commit": "4829c1c9e9095a3303caec9af7d02f6547f6df0e",
      "tree": "2b3819cd2ea17b652ba29f3a8a6ea9945ec6c4bb",
      "parents": [
        "7a411a306f90339d8686e42ac16e1ae4fc7533c5"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Apr 04 15:16:54 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 04 15:16:54 2022 +0100"
      },
      "message": "patch 8.2.4683: verbose check with dict_find() to see if a key is present\n\nProblem:    Verbose check with dict_find() to see if a key is present.\nSolution:   Add dict_has_key(). (Yegappan Lakshmanan, closes #10074)\n"
    },
    {
      "commit": "e0c2b2ceaa8ca2d0f412f17f4cf14fb4f7a3296f",
      "tree": "aaf24425b3e4d43316647169685b66b5df3e8bf5",
      "parents": [
        "4fa1346bf4210747f34b64d05b39309918ca538d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 05 14:05:51 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 05 14:05:51 2022 +0000"
      },
      "message": "patch 8.2.4301: Vim9: type error for copy of dict\n\nProblem:    Vim9: type error for copy of dict.\nSolution:   Do not use dict\u003cany\u003e but no type. (closes #9696)\n"
    },
    {
      "commit": "381692b6f1c2ec9b73a139500286ddc9347a1c01",
      "tree": "96145ec58ad29dd86bbc80e557377333c07d059b",
      "parents": [
        "a1c519518050383e7d319514a3ff6c42a9154c48"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 02 20:01:27 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 02 20:01:27 2022 +0000"
      },
      "message": "patch 8.2.4286: Vim9: strict type checking after copy() and deepcopy()\n\nProblem:    Vim9: strict type checking after copy() and deepcopy().\nSolution:   Allow type to change after making a copy. (closes #9644)\n"
    },
    {
      "commit": "04935fb17e5f0f66b82cf4546b9752d3d1fa650e",
      "tree": "d80c59d316f2f17a27a6541a8eb40d01cc49eca8",
      "parents": [
        "143367256836b0f69881dc0c65ff165ae091dbc5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 08 16:19:22 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 08 16:19:22 2022 +0000"
      },
      "message": "patch 8.2.4043: using int for second argument of ga_init2()\n\nProblem:    Using int for second argument of ga_init2().\nSolution:   Remove unnessary type cast (int) when using sizeof().\n"
    },
    {
      "commit": "a6f7929e62c19a6a2418a016b4c59b83eb1887ac",
      "tree": "dff539628404695bd64e68602c8f7f62d9dd12f7",
      "parents": [
        "548911ee145cdd166f20e46aa720d1631e66f64e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 04 21:30:47 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 04 21:30:47 2022 +0000"
      },
      "message": "patch 8.2.4005: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more error messages to errors.h.\n"
    },
    {
      "commit": "10d6f18b2f9090d19dd884827c4be59a20b446bf",
      "tree": "c6f52c09d8961e851e5728c88c8f6bf11cf8cb73",
      "parents": [
        "078a46161e8b1b30bf306d6c1f4f0af7c616a989"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 04 15:54:38 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 04 15:54:38 2022 +0000"
      },
      "message": "patch 8.2.3997: Vim9: not enough testing for extend() and map()\n\nProblem:    Vim9: not enough testing for extend() and map().\nSolution:   Add more test cases.  Fix uncovered problems.  Remove unused type\n            fields.\n"
    },
    {
      "commit": "078a46161e8b1b30bf306d6c1f4f0af7c616a989",
      "tree": "334c2fa968e1641524028ac18afedf5980446e64",
      "parents": [
        "9acf2d8be93f3b50607279e7f3484b019675d0a7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 04 15:17:03 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 04 15:17:03 2022 +0000"
      },
      "message": "patch 8.2.3996: Vim9: type checking lacks information about declared type\n\nProblem:    Vim9: type checking for list and dict lacks information about\n            declared type.\nSolution:   Add dv_decl_type and lv_decl_type.  Refactor the type stack to\n            store two types in each entry.\n"
    },
    {
      "commit": "74409f62790a93daf0965c71da01ff76aa0fa5a5",
      "tree": "ece55c806dc6fe451d24af66008ae1444d81d73d",
      "parents": [
        "56200eed62e59ad831f6564dcafe346e6f97ac20"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 01 15:58:22 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 01 15:58:22 2022 +0000"
      },
      "message": "patch 8.2.3970: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more errors to errors.h.\n"
    },
    {
      "commit": "460ae5dfca31fa627531c263184849976755cf6b",
      "tree": "d94de6a24285bc10fd62ad4ae9aecb53f9a7e913",
      "parents": [
        "b37a65e4bf08c4eec4fa5b81a5efc3945fca44de"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 01 14:19:49 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 01 14:19:49 2022 +0000"
      },
      "message": "patch 8.2.3967: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more errors to errors.h.\n"
    },
    {
      "commit": "436b5adc9770a2568209dd5ab1f98bd1afc91898",
      "tree": "623dc85ee9a396b16f939f44d38138f882edc229",
      "parents": [
        "f1474d801bbdb73406dd3d1f931f515f99e86dfa"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 31 22:49:24 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 31 22:49:24 2021 +0000"
      },
      "message": "patch 8.2.3961: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more errors to errors.h.\n"
    },
    {
      "commit": "b4168fd917e869912e0649fe13c10e5e6a595199",
      "tree": "6f0cfb21ffa19c605c3499faa62a01519f3e49e1",
      "parents": [
        "a80aad717464760a5a50ac2201ce35b24a0cf7a5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 22 20:29:09 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 22 20:29:09 2021 +0000"
      },
      "message": "patch 8.2.3875: gcc complains about buffer overrun\n\nProblem:    gcc complains about buffer overrun.\nSolution:   Use mch_memmove() instead of STRCPY(). (John Marriott)\n"
    },
    {
      "commit": "f973eeb4911de09258e84cb2248dc0f9392824b4",
      "tree": "81ac7737af13f9eff0d6b69306b7ed6691d23804",
      "parents": [
        "1aeccdb464d81f0af047b399cbad160307a91f7c"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Dec 22 18:19:26 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 22 18:19:26 2021 +0000"
      },
      "message": "patch 8.2.3871: list.c contains code for dict and blob\n\nProblem:    List.c contains code for dict and blob.\nSolution:   Refactor to put code where it belongs. (Yegappan Lakshmanan,\n            closes #9386)\n"
    },
    {
      "commit": "e124204c4f8ea8b4fe5357b7613092a7acb5feb8",
      "tree": "8a049a292b17314710048a1b17625416c2bfc8d6",
      "parents": [
        "94c785d235dccacf6cdf38c5903115b61ca8a981"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 16 20:56:57 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 16 20:56:57 2021 +0000"
      },
      "message": "patch 8.2.3830: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more error messages to errors.h.\n"
    },
    {
      "commit": "98cb90ef865089a5ddd20bc0303d449fb7d97fb2",
      "tree": "34a47025742f1c635e583c5aeced5f0fe7e92476",
      "parents": [
        "c750d91a07ace532e993349aa5c13dda5c888cc0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Nov 30 11:56:22 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Nov 30 11:56:22 2021 +0000"
      },
      "message": "patch 8.2.3702: first key in dict is seen as curly expression and fails\n\nProblem:    First key in dict is seen as curly expression and fails.\nSolution:   Ignore failure of curly expression. (closes #9247)\n"
    },
    {
      "commit": "3b3755fe19e9ded2a1c45f14b2c6fa065bcaf2c6",
      "tree": "92ed5f9e604bc7f42fcf6ddf0fd2499f46accb85",
      "parents": [
        "7a53f29c031f54ab67a803e5e3f8cb44e4edc4bc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Nov 22 20:10:18 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Nov 22 20:10:18 2021 +0000"
      },
      "message": "patch 8.2.3650: Vim9: for loop variable can be a list member\n\nProblem:    Vim9: for loop variable can be a list member.\nSolution:   Check for valid variable name. (closes #9179)\n"
    },
    {
      "commit": "3b318513561b5862944769188ae4af6b70311838",
      "tree": "c2cc892b4c5fffd392f47676e87fcb66fe834b1d",
      "parents": [
        "3ae5fc9a6a881e0be381e4cc70080ac5908d7520"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 06 19:19:45 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 06 19:19:45 2021 +0200"
      },
      "message": "patch 8.2.3407: using uninitialized memory with \"let g:[\u0027bar\u0027] \u003d 2\"\n\nProblem:    Using uninitialized memory with \"let g:[\u0027bar\u0027] \u003d 2\".\nSolution:   Initialize v_type of a new dict item.\n"
    },
    {
      "commit": "ef98257593a0abf1300d0f70358dc45a70a62580",
      "tree": "b54637016b2993dd37b4abda8cc4d8b03673719f",
      "parents": [
        "bd77aa92744d79f3ba69aee713739ec17da474f6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 12 19:27:57 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 12 19:27:57 2021 +0200"
      },
      "message": "patch 8.2.3335: Vim9: not enough tests run with Vim9\n\nProblem:    Vim9: not enough tests run with Vim9.\nSolution:   Run a few more tests in Vim9 script and :def function.  Fix that\n            items(), keys() and values9) return zero for a NULL dict.\n            Make join() return an empty string for a NULL list.  Make sort()\n            return an empty list for a NULL list.\n"
    },
    {
      "commit": "8ee52affe7fd4daa03e002bc06611f0a8c3bcd5b",
      "tree": "bf218a0a9a9a0c8c182aca16491f5063f79acce5",
      "parents": [
        "eed9616120f60ad17d5e133f505bba5c559aee89"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Aug 09 19:59:06 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 09 19:59:06 2021 +0200"
      },
      "message": "patch 8.2.3320: some local functions are not static\n\nProblem:    Some local functions are not static.\nSolution:   Add \"static\".  Move snprintf() related code to strings.c.\n            (Yegappan Lakshmanan, closes #8734)\n"
    },
    {
      "commit": "4490ec4e839e45a2e6923c265c7e9e64c240b805",
      "tree": "3ef2dc127890ac6a644f38ae7932b7e70071544a",
      "parents": [
        "5d7c2df536c17db4a9c61e0760bdcf78d0db7330"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Jul 27 22:00:44 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 27 22:00:44 2021 +0200"
      },
      "message": "patch 8.2.3229: Vim9: runtime and compile time type checks are not the same\n\nProblem:    Vim9: runtime and compile time type checks are not the same.\nSolution:   Add more runtime type checks for builtin functions. (Yegappan\n            Lakshmanan, closes #8646)\n"
    },
    {
      "commit": "0ad871dc4dfe1026e14931a55c225616b63f4c5b",
      "tree": "a83e1cf4e231864e182c4b9ce70c37460d2200dd",
      "parents": [
        "1b862c466ba4242857eec581f67982d265005ef4"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Jul 23 20:37:56 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 23 20:37:56 2021 +0200"
      },
      "message": "patch 8.2.3206: Vim9: argument types are not checked at compile time\n\nProblem:    Vim9: argument types are not checked at compile time.\nSolution:   Add several more type checks. (Yegappan Lakshmanan, closes #8611)\n"
    },
    {
      "commit": "7a3fe3e180bdbce8f193abdf399559c5154bdaae",
      "tree": "842eac4734c81db7a49ddaaf20b4fea732bb8162",
      "parents": [
        "a74901929e999a0052c1ce388ab09359c10cbb0d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 22 14:58:47 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 22 14:58:47 2021 +0200"
      },
      "message": "patch 8.2.3200: Vim9: hard to guess where a type error is given\n\nProblem:    Vim9: hard to guess where a type error is given.\nSolution:   Add the function name where possible. (closes #8608)\n"
    },
    {
      "commit": "83494b4ac61898f687d6ef9dce4bad5802fb8e51",
      "tree": "36f06f4a70bd9a515527064cd8985029ab27c6a6",
      "parents": [
        "9bb0dad0d8283c86fddf5b950f4fbb6fb8f12741"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Jul 20 17:51:51 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 20 17:51:51 2021 +0200"
      },
      "message": "patch 8.2.3188: Vim9: argument types are not checked at compile time\n\nProblem:    Vim9: argument types are not checked at compile time.\nSolution:   Add several more type checks, also at runtime. (Yegappan\n            Lakshmanan, closes #8587)\n"
    },
    {
      "commit": "b54abeeafb074248597878a874fed9a66b114c06",
      "tree": "23767345ef1431fb9291acd6ad65ae52dabcc789",
      "parents": [
        "6f1d2aa437744a7cb0206fdaa543a788c5a56c79"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 02 11:49:23 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 02 11:49:23 2021 +0200"
      },
      "message": "patch 8.2.2921: E704 for script local variable is not backwards compatible\n\nProblem:    E704 for script local variable is not backwards compatible.\n            (Yasuhiro Matsumoto)\nSolution:   Only give the error in Vim9 script.  Also check for function-local\n            variable.\n"
    },
    {
      "commit": "6f1d2aa437744a7cb0206fdaa543a788c5a56c79",
      "tree": "69fa87e33af45f6763679098bda0011e83041e19",
      "parents": [
        "6a43b37b760347b9a1bedf12e41b458000922969"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jun 01 21:21:55 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jun 01 21:21:55 2021 +0200"
      },
      "message": "patch 8.2.2920: still a way to shadow a builtin function\n\nProblem:    Still a way to shadow a builtin function. (Yasuhiro Matsumoto)\nSolution:   Check the key when using extend(). (issue #8302)\n"
    },
    {
      "commit": "f785aa1354208f6b644e891aa01f8f86d947af7e",
      "tree": "aa9ed2fee106094256c479215ab91ec129d3d763",
      "parents": [
        "0bcadf14aa700c166c09f1800ed3de00b9598b39"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Feb 11 21:19:34 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Feb 11 21:19:34 2021 +0100"
      },
      "message": "patch 8.2.2501: not always clear where an error is reported\n\nProblem:    Not always clear where an error is reported.\nSolution:   Add the where_T structure and pass it around. (closes #7796)\n"
    },
    {
      "commit": "ba98fb54aefada4c36390add4c7dd90b93e7e5bb",
      "tree": "b18dcd21c820d42452a935560f3fcee59e700913",
      "parents": [
        "0123cc1e1422003704cc6941916dd75e61fb7976"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 07 18:06:29 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 07 18:06:29 2021 +0100"
      },
      "message": "patch 8.2.2486: Vim9: some errors for white space do not show context\n\nProblem:    Vim9: some errors for white space do not show context.\nSolution:   Include the text at the error.\n"
    },
    {
      "commit": "c3fc75db023f2acd0b82b7eebffd7ed89e8001ed",
      "tree": "ccd13a21ec12f4b20124bedb7397896471ec8e9a",
      "parents": [
        "00385114dbd6a3d59516baa02e1ea86a1e7ee70e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 07 15:28:09 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 07 15:28:09 2021 +0100"
      },
      "message": "patch 8.2.2480: Vim9: some errors for white space do not show context\n\nProblem:    Vim9: some errors for white space do not show context.\nSolution:   Include the text at the error.\n"
    },
    {
      "commit": "2e5910bfbb05957c10c9c69756dfa342557e9a8b",
      "tree": "c70cb2b5240cb3f8465cb14773a11c25622e9a41",
      "parents": [
        "91478ae49a1b2dc1de63821db731a343e855dcc0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 03 17:41:24 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 03 17:41:24 2021 +0100"
      },
      "message": "patch 8.2.2455: Vim9: key type for literal dict and indexing is inconsistent\n\nProblem:    Vim9: key type that can be used for literal dict and indexing is\n            inconsistent.\nSolution:   Allow using number and bool as key for a literal dict. (#7771)\n"
    },
    {
      "commit": "4bce26bb70144633713e7e8f149ba99cac511336",
      "tree": "4d612e69966b21ce4137281433efef4535d61401",
      "parents": [
        "402115f1c2b4d0704a822206f2e6e931e721c129"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 22 22:06:56 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 22 22:06:56 2021 +0100"
      },
      "message": "patch 8.2.2393: Vim9: error message when script line starts with \"[{\"\n\nProblem:    Vim9: error message when script line starts with \"[{\".\nSolution:   Do not give an error for checking for end of list.\n"
    },
    {
      "commit": "aa210a3aeccc33c6051978017959126b037f94af",
      "tree": "29c2f91c51dc55a52e427f89643ae4b9c4c56c58",
      "parents": [
        "3e0107ea16349b354e0e9712e95b09ef019e99e5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 02 15:41:03 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 02 15:41:03 2021 +0100"
      },
      "message": "patch 8.2.2272: Vim9: extend() can violate the type of a variable\n\nProblem:    Vim9: extend() can violate the type of a variable.\nSolution:   Add the type to the dictionary or list and check items against it.\n            (closes #7593)\n"
    },
    {
      "commit": "03290b8444b69c6d7307755770467bc488384e1a",
      "tree": "7b6b7eaaa41c2f2194a0712f6848fe8209552af6",
      "parents": [
        "1f33e0a7c4cd278158b37f91a2aa44f0bcd1f21a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Dec 19 16:30:44 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Dec 19 16:30:44 2020 +0100"
      },
      "message": "patch 8.2.2162: Vim9: Cannot load or store autoload variables\n\nProblem:    Vim9: Cannot load or store autoload variables.\nSolution:   Add ISN_LOADAUTO and ISN_STOREAUTO. (closes #7485)\n"
    },
    {
      "commit": "9987fb0b4b591e6450fb1dfbe8f615f365057f2a",
      "tree": "934e6a83812494bf39b91c168935636c70bf9492",
      "parents": [
        "399ea8108c8da3fcdf5d738a0f8eae67155b4b10"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 15 21:41:56 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 15 21:41:56 2020 +0100"
      },
      "message": "patch 8.2.2146: Vim9: automatic conversion of number to string for dict key\n\nProblem:    Vim9: automatic conversion of number to string for dict key.\nSolution:   Do not convert number to string. (closes #7474)\n"
    },
    {
      "commit": "8bb0f5472c740458708fd3edabbb8d5193a96241",
      "tree": "b21ab779e1502e16c2275d0fe9ec120c561a3279",
      "parents": [
        "67322bf74a106b6476b093e75da87d61e2181b76"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 06 16:03:55 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 06 16:03:55 2020 +0100"
      },
      "message": "patch 8.2.2101: Vim9: memory leak when literal dict has an error\n\nProblem:    Vim9: memory leak when literal dict has an error and when an\n            expression is not complete.\nSolution:   Clear the typval and the growarray.\n"
    },
    {
      "commit": "c5e6a7179d7dee4315b412b56e172bb1ff092d3e",
      "tree": "70eae554a7a7cb493df307f92b1f0372033132bf",
      "parents": [
        "6cd42db9dc1251b052b97d47bafc063eacac1b3e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 04 19:12:14 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 04 19:12:14 2020 +0100"
      },
      "message": "patch 8.2.2090: Vim9: dict does not accept a key in quotes\n\nProblem:    Vim9: dict does not accept a key in quotes.\nSolution:   Recognize a key in single or double quotes.\n"
    },
    {
      "commit": "e0de171ecd2ff7acd56deda2cf81f0d13a69c803",
      "tree": "87667e0ae5a5517461d7f4e59514d9495170a05a",
      "parents": [
        "7f76494aac512b1d603d9be4132184241f43872c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 02 17:36:54 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 02 17:36:54 2020 +0100"
      },
      "message": "patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax\n\nProblem:    Vim9: can still use the depricated #{} dict syntax.\nSolution:   Remove support for #{} in Vim9 script. (closes #7406, closes #7405)\n"
    },
    {
      "commit": "67d1c68f095eb6cbb6355b04972e384d23065c2c",
      "tree": "eae38c014c4e57795ebd7cd3d34f8b00614d5649",
      "parents": [
        "c6ca9f3a29bfd6f5269749036f79f63ce6289692"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Nov 19 19:01:43 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Nov 19 19:01:43 2020 +0100"
      },
      "message": "patch 8.2.2017: missing part of the dict change\n\nProblem:    Missing part of the dict change.\nSolution:   Also change the script level dict.\n"
    },
    {
      "commit": "22286895fce0e45e42126c7f2e35ebf43bc625d9",
      "tree": "724167479bb64dc64279cc35319a533a82e704c1",
      "parents": [
        "0fd797eacd569a0680a86452c18713eacf6608fe"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Nov 05 20:50:51 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Nov 05 20:50:51 2020 +0100"
      },
      "message": "patch 8.2.1961: various comments can be improved\n\nProblem:    Various comments can be improved.\nSolution:   Various comment adjustments.\n"
    },
    {
      "commit": "b07a39de485db5709a6b3e2f96e66ab06dd76279",
      "tree": "52cc16b985d05060eccbbe7964bdfda1224c7a1b",
      "parents": [
        "e6e70a10f118ecfa9df2425e8724bc009bd09929"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Oct 22 19:00:01 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Oct 22 19:00:01 2020 +0200"
      },
      "message": "patch 8.2.1889: Vim9: errornous error for missing white space after {}\n\nProblem:    Vim9: errornous error for missing white space after {}.\nSolution:   Don\u0027t skip over white space after {}. (issue #7167)\n"
    },
    {
      "commit": "a2c026d0fd470d68d679616fddfc285cb4834412",
      "tree": "d27998d17bcf402ed722648db7ced31fa76f5f0a",
      "parents": [
        "335e67132265b068f39f3671e5dff2aecd1bf403"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 18 18:03:17 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 18 18:03:17 2020 +0200"
      },
      "message": "patch 8.2.1861: Vim9: no specific error when parsing lambda fails\n\nProblem:    Vim9: no specific error when parsing lambda fails.\nSolution:   Also give syntax errors when not evaluating. (closes #7154)\n"
    },
    {
      "commit": "3f974ff45e0ea4b85fea7d8768f005d8a2c7941e",
      "tree": "81bbcfa7014b80e712210e797ac43df8aa418010",
      "parents": [
        "fa79be6b10e1d34fd697a56e85f6c0ce101f3d62"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 02 18:11:56 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 02 18:11:56 2020 +0200"
      },
      "message": "patch 8.2.1785: compiler warning for strcp() out of bounds\n\nProblem:    Compiler warning for strcp() out of bounds. (Christian Brabandt)\nSolution:   use memmove() instead.\n"
    },
    {
      "commit": "a187c43cfe8863d48b2159d695fedcb71f8525c1",
      "tree": "40cd63746c55f16dadb674da3d1ffab7f23f291b",
      "parents": [
        "7707228aace9aff16434edf5377a354c6ad07316"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 16 21:08:28 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 16 21:08:28 2020 +0200"
      },
      "message": "patch 8.2.1698: cannot lock a variable in legacy Vim script like in Vim9\n\nProblem:    Cannot lock a variable in legacy Vim script like in Vim9.\nSolution:   Make \":lockvar 0\" work.\n"
    },
    {
      "commit": "7cb6fc29d067ed97c0b0c1d2d5767125ef9ae1ab",
      "tree": "a5307e1932b80df92df373384835b4c90b6db628",
      "parents": [
        "81e17fbe00fd2ed93b262adc3ba41c86b02e7f46"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 21 22:36:47 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 21 22:36:47 2020 +0200"
      },
      "message": "patch 8.2.1504: Vim9: white space checks are only done for a :def function\n\nProblem:    Vim9: white space checks are only done for a :def function.\nSolution:   Also do checks at the script level.  Adjust the name of a few\n            error messages.\n"
    },
    {
      "commit": "558813314d63dd0263a7a86c0496c1e89b5c8cba",
      "tree": "7ebfbe1f61edc2bfb5fc82f354bf6f7cae5391ec",
      "parents": [
        "f39397e515067d5a314be99778e63fe0acf93c51"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 18 13:04:15 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 18 13:04:15 2020 +0200"
      },
      "message": "patch 8.2.1478: Vim9: cannot use \"true\" for some popup options\n\nProblem:    Vim9: cannot use \"true\" for some popup options.\nSolution:   Add dict_get_bool(). (closes #6725)\n"
    },
    {
      "commit": "bc4c505166dc82911553206bb0c2133c6ac94aa1",
      "tree": "14a6624ace74cef5d79c55c818012042fef3d03e",
      "parents": [
        "cdd70f09a5340c3d7ae873f1aaaf9847f27410cc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 13 22:47:35 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 13 22:47:35 2020 +0200"
      },
      "message": "patch 8.2.1444: error messages are spread out and names can be confusing\n\nProblem:    Error messages are spread out and names can be confusing.\nSolution:   Start moving error messages to a separate file and use clear\n            names.\n"
    },
    {
      "commit": "c3d6e8a46a8fc5de622e8df9dbd25edd03e00c5b",
      "tree": "ef3a17ee8bf2d16b9f6ce35854243cd731e7f221",
      "parents": [
        "db199216e81865350a8d56a603bb86cab672bfad"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 12 18:34:28 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 12 18:34:28 2020 +0200"
      },
      "message": "patch 8.2.1431: Vim9: no error for white space before comma in dict\n\nProblem:    Vim9: no error for white space before comma in dict.\nSolution:   Check for extra white space. (closes #6674)\n"
    },
    {
      "commit": "db199216e81865350a8d56a603bb86cab672bfad",
      "tree": "70f6784f2cb7f3f1e1cac3b812545240ca83e982",
      "parents": [
        "17a836cbee6b8d8ff555f8e307f48a779908db41"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 12 18:01:53 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 12 18:01:53 2020 +0200"
      },
      "message": "patch 8.2.1430: Vim9: error for missing comma instead of extra white space\n\nProblem:    Vim9: error for missing comma instead of extra white space.\nSolution:   Check if comma can be found after white space. (closes #6668)\n            Also check for extra white space in literal dict. (closes #6670)\n"
    },
    {
      "commit": "98b4f145eb89405021e23a4a37db51d60a75a1d0",
      "tree": "5d359da0f267a784d3f419e61c36aa47f36d4b2f",
      "parents": [
        "2dd0a2c39a3b3fbffc94d0676e472c78d02ebdbd"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 08 15:46:01 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 08 15:46:01 2020 +0200"
      },
      "message": "patch 8.2.1395: Vim9: no error if declaring a funcref with lower case letter\n\nProblem:    Vim9: no error if declaring a funcref with a lower case letter.\nSolution:   Check the name after the type is inferred. Fix confusing name.\n"
    },
    {
      "commit": "ae95a3946b012d4e68bcb20b28f691f6d3b9caaf",
      "tree": "49a18b8dc3145e921b6b5af30c7f78fab9320c6e",
      "parents": [
        "bbd3e3c357487f7a5bdc704a819f63a7dd0dd66e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 06 16:38:12 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 06 16:38:12 2020 +0200"
      },
      "message": "patch 8.2.1379: curly braces expression ending in \" }\" does not work\n\nProblem:    Curly braces expression ending in \" }\" does not work.\nSolution:   Skip over white space when checking for \"}\". (closes #6634)\n"
    },
    {
      "commit": "4d4d1cd5c8b61ef0296bd6190ca2a0b2d6d96ba7",
      "tree": "0d7e06a252e1f6ba2b97c86b163b5fc8954b117b",
      "parents": [
        "f4ee528086dcff2b8744544c440853f177956261"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 30 22:14:33 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 30 22:14:33 2020 +0200"
      },
      "message": "patch 8.2.1328: no space allowed before comma in list\n\nProblem:    No space allowed before comma in list.\nSolution:   Legacy Vim script allows it. (closes #6577)\n"
    },
    {
      "commit": "9d489566815d7913afc5dfc2a772bacede3970fb",
      "tree": "eff105e7214186b0a4bf31296d06d7d89926935a",
      "parents": [
        "ea2d8d25718836bf627b67b7fcd28a1e528bb7b9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 30 20:08:50 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 30 20:08:50 2020 +0200"
      },
      "message": "patch 8.2.1326: Vim9: skipping over white space after list\n\nProblem:    Vim9: skipping over white space after list.\nSolution:   Do not skip white space, a following [] would be misinterpreted.\n            (closes #6552)  Fix a few side effects.\n"
    },
    {
      "commit": "eb6880b6eb7c4631f6103575c0d1336b149348c1",
      "tree": "3ef9e464dfa615794f921e78f14fa6c14fa9a944",
      "parents": [
        "8af81d656a4c501611f6211b6379ea9dd650c545"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 12 17:07:05 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 12 17:07:05 2020 +0200"
      },
      "message": "patch 8.2.1190: Vim9: checking for Vim9 syntax is spread out\n\nProblem:    Vim9: checking for Vim9 syntax is spread out.\nSolution:   Use in_vim9script().\n"
    },
    {
      "commit": "962d7213194647e90f9bdc608f693d39dd07cbd5",
      "tree": "3714605c7e29ea8fe42f8cf6b0bc383b0b685ac8",
      "parents": [
        "1c991144c502ade477e1a32fdfd0f78b6299fdc7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 04 14:15:00 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 04 14:15:00 2020 +0200"
      },
      "message": "patch 8.2.1125: Vim9: double quote can be a string or a comment\n\nProblem:    Vim9: double quote can be a string or a comment.\nSolution:   Only support comments starting with # to avoid confusion.\n"
    },
    {
      "commit": "e6b5324e3a3d354363f3c48e784c42ce3e77453f",
      "tree": "7e4ddd66d330a898256b3ea8060768a761aa2cc2",
      "parents": [
        "086eb18ba16164ca5258068cff9c4b2db742f2ef"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 01 17:28:33 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 01 17:28:33 2020 +0200"
      },
      "message": "patch 8.2.1110: Vim9: line continuation does not work in function arguments\n\nProblem:    Vim9: line continuation does not work in function arguments.\nSolution:   Pass \"evalarg\" to get_func_tv().  Fix seeing double quoted string\n            as comment.\n"
    },
    {
      "commit": "9215f01218b2ed2cfe49c1f43fcf342bd9ffdded",
      "tree": "f2012a07fa1a29ccfde4ecfd1010949ff81e5526",
      "parents": [
        "7a4981b93642b5b62018cd8150b3fb0dfa2417d4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 27 21:18:00 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 27 21:18:00 2020 +0200"
      },
      "message": "patch 8.2.1074: Vim9: no line break allowed after some operators\n\nProblem:    Vim9: no line break allowed after some operators.\nSolution:   Skip a line break after the operator.  Add\n            eval_may_get_next_line() to simplify checking for a line break.\n"
    },
    {
      "commit": "ab19d495fd880b25a38d58cbeb5b21e4d0ee5835",
      "tree": "73512e53f773f7eff51eac22dd445aeb7514a750",
      "parents": [
        "e6e031739c9d0c4140e371031b58a249db0eb572"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 27 17:04:05 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 27 17:04:05 2020 +0200"
      },
      "message": "patch 8.2.1070: Vim9: leaking memory when lacking white space in dict\n\nProblem:    Vim9: leaking memory when lacking white space in dict.\nSolution:   Clear the typval.\n"
    },
    {
      "commit": "8ea9390b78da9e34a20e7418712921397c0c1989",
      "tree": "763d4a683a512b240f7e604e518327fb7d0aa14f",
      "parents": [
        "0b1cd52ff6bf690388f892be686a91721a082e55"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 27 14:11:53 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 27 14:11:53 2020 +0200"
      },
      "message": "patch 8.2.1068: Vim9: no line break allowed inside a dict\n\nProblem:    Vim9: no line break allowed inside a dict.\nSolution:   Handle line break inside a dict in Vim9 script.\n"
    },
    {
      "commit": "5409f5d8c95007216ae1190565a7a8ee9ebd7100",
      "tree": "cbc94bc8f6560299b6ef2224f526ab53c7534bc6",
      "parents": [
        "b7e2483655d9b68df0c7349918027d800051a28a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 24 18:37:35 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 24 18:37:35 2020 +0200"
      },
      "message": "patch 8.2.1047: Vim9: script cannot use line continuation like :def function\n\nProblem:    Vim9: script cannot use line continuation like in a :def function.\nSolution:   Pass the getline function pointer to the eval() functions.  Use it\n            for addition and multiplication operators.\n"
    },
    {
      "commit": "df44a27b53586fccfc6a3aedc89061fdd9a515ff",
      "tree": "2d0ca2790b3e106a7d8f059951160789167a17a1",
      "parents": [
        "da84ac2a6f467d0b9eddcc8709433cda75d16a41"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 07 20:49:05 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 07 20:49:05 2020 +0200"
      },
      "message": "patch 8.2.0928: many type casts are used for vim_strnsave()\n\nProblem:    Many type casts are used for vim_strnsave().\nSolution:   Make the length argument size_t instead of int. (Ken Takata,\n            closes #5633)  Remove some type casts.\n"
    },
    {
      "commit": "32e351179eacfc84f64cd5029e221582d400bb38",
      "tree": "f82085603b8f50db86eed7c2d39f9922aa35eebd",
      "parents": [
        "e06a28f5e30f439545ac125d54ffc4e6bd6daada"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 14 22:41:15 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 14 22:41:15 2020 +0200"
      },
      "message": "patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase\n\nProblem:    Vim9: expressions are evaluated in the discovery phase.\nSolution:   Bail out if an expression is not a constant.  Require a type for\n            declared constants.\n"
    },
    {
      "commit": "89483d40438830fb9e74a5ec6c92d2470b05e4c2",
      "tree": "beb03e9bded5798073787f275b2f3cee63814f8b",
      "parents": [
        "69212b11d18d9d8951968f6ca88e6ce046c90675"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 10 15:24:44 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 10 15:24:44 2020 +0200"
      },
      "message": "patch 8.2.0729: Vim9: When reloading a script variables are not cleared\n\nProblem:    Vim9: When reloading a script variables are not cleared.\nSolution:   When sourcing a script again clear all script-local variables.\n"
    },
    {
      "commit": "ea04a6e8baff2f27da7cdd54bf70a5525994f76d",
      "tree": "d8578e5bec3f99d462191ba6eb49f83c60211181",
      "parents": [
        "db950e4c0318c084c31bc7b50665284f4a47c285"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 23 13:38:02 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 23 13:38:02 2020 +0200"
      },
      "message": "patch 8.2.0619: null dict is not handled like an empty dict\n\nProblem:    Null dict is not handled like an empty dict.\nSolution:   Fix the code and add tests. (Yegappan Lakshmanan, closes #5968)\n"
    },
    {
      "commit": "33fa29cf74ea314f89cfa58ec9ffc2d6781a59d4",
      "tree": "d0efad2d8d614a0e63505c62a3b18e5b91f5589d",
      "parents": [
        "09c569038c42dcbdaa5c9b35fc9d1afbe5072cb4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 28 19:41:33 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 28 19:41:33 2020 +0100"
      },
      "message": "patch 8.2.0467: Vim9: some errors are not tested\n\nProblem:    Vim9: some errors are not tested\nSolution:   Add more tests.  Fix that Vim9 script flag is not reset.\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": "9b4a15d5dba354d2e1e02871470bad103f34769a",
      "tree": "e5e49ad3182e07e641cdea0e04c4a8078186c58c",
      "parents": [
        "e05a89ac6399a8c7d164c99fdab6841d999a9128"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 11 16:05:23 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 11 16:05:23 2020 +0100"
      },
      "message": "patch 8.2.0111: VAR_SPECIAL is also used for booleans\n\nProblem:    VAR_SPECIAL is also used for booleans.\nSolution:   Add VAR_BOOL for better type checking.\n"
    },
    {
      "commit": "ab782c5b6f127b84f56e546004352de66e7cf66b",
      "tree": "019bc1bef68137dc5202b7bc40fe15d55547cf07",
      "parents": [
        "3d8a513b46b586cb5d2893e7f28c5f51c4dfdc17"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 04 19:00:11 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 04 19:00:11 2020 +0100"
      },
      "message": "patch 8.2.0086: build error for small version\n\nProblem:    Build error for small version. (Tony Mechelynck)\nSolution:   Only use \"user_data\" with the +eval feature. Remove unused\n            variable.\n"
    },
    {
      "commit": "0892832bb6c7e322fcae8560eaad5a8140ee4a06",
      "tree": "d45503cc14259ea6c44cb63f26b69a6bfb4bfc3c",
      "parents": [
        "5cb0b93d52fa5c12ca50a18509947ee6459bb7a8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 04 14:32:48 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 04 14:32:48 2020 +0100"
      },
      "message": "patch 8.2.0084: complete item \"user_data\" can only be a string\n\nProblem:    Complete item \"user_data\" can only be a string.\nSolution:   Accept any type of variable. (closes #5412)\n"
    },
    {
      "commit": "5d18efecfd6c45d69f55268948a22cd0465bb955",
      "tree": "409afa09cb7fb8f4684e0399f2597ba5d16edbfa",
      "parents": [
        "fa5612c7d836eb789e0f8ff4b10461b8640a14b2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 01 21:11:22 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 01 21:11:22 2019 +0100"
      },
      "message": "patch 8.1.2378: using old C style comments\n\nProblem:    Using old C style comments.\nSolution:   Use // comments where appropriate.\n"
    },
    {
      "commit": "a893194d91a2942d4d54085d746ed137a9251b69",
      "tree": "970558778b2b136d434a8d5c43994f9399c7a5e9",
      "parents": [
        "473952e85286eb9c6098801f1819981ba61ad153"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 28 17:25:10 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 28 17:25:10 2019 +0200"
      },
      "message": "patch 8.1.2095: leaking memory when getting item from dict\n\nProblem:    Leaking memory when getting item from dict.\nSolution:   Also free the key when not evaluating.\n"
    },
    {
      "commit": "8c6173c7d3431dd8bc2b6ffc076ef49512a7e175",
      "tree": "ea731594d1036e094132f9d0816e30b9717f5405",
      "parents": [
        "b5432d8968bda70fc20ebb5e136e367d174d1c4e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 30 22:08:34 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 30 22:08:34 2019 +0200"
      },
      "message": "patch 8.1.1949: cannot scroll a popup window to the very bottom\n\nProblem:    Cannot scroll a popup window to the very bottom.\nSolution:   Scroll to the bottom when the \"firstline\" property was set to -1.\n            (closes #4577)  Allow resetting min/max width/height.\n"
    },
    {
      "commit": "5843f5f37b0632e2d706abc9014bfd7d98f7b02e",
      "tree": "2f1af5fd16214dfdf8edc8717e06a8b0aab81c1a",
      "parents": [
        "9a4a8c4d5993c6371486c895a515c2ad351e9aaa"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 20 20:13:45 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 20 20:13:45 2019 +0200"
      },
      "message": "patch 8.1.1891: functions used in one file are global\n\nProblem:    Functions used in one file are global.\nSolution:   Add \"static\". (Yegappan Lakshmanan, closes #4840)\n"
    },
    {
      "commit": "b59e7357722d977830948572a395f0a175c7ded8",
      "tree": "4b67980c7e04c9986a51368b51b554cc61b9d546",
      "parents": [
        "5bcc5a1ff94bbab1b175e35a72e3df974106b393"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 07 21:42:24 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 07 21:42:24 2019 +0200"
      },
      "message": "patch 8.1.1825: 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 #4785)\n"
    },
    {
      "commit": "9f9fe37f6750f342255a51f158a7bb372c827f7f",
      "tree": "c140c42b9f184c0bba789f3d4ed749a1e6fb3ed4",
      "parents": [
        "c273405188cc2f19e949089cda1f92bd81610dac"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 27 23:12:12 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 27 23:12:12 2019 +0200"
      },
      "message": "patch 8.1.1763: evalfunc.c is still too big\n\nProblem:    Evalfunc.c is still too big.\nSolution:   Move dict and list functions to a better place.\n"
    },
    {
      "commit": "d5abb4c87727eecb71b0e8ffdda60fc9598272f3",
      "tree": "0166ed6641ae120fe56c807f90a88e071aa74bbd",
      "parents": [
        "809ce4d317fe12db0b2c17f16b4f77200fb060c4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 13 22:46:10 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 13 22:46:10 2019 +0200"
      },
      "message": "patch 8.1.1683: dictionary with string keys is longer than needed\n\nProblem:    Dictionary with string keys is longer than needed.\nSolution:   Use *{key: val} for literaly keys.\n"
    },
    {
      "commit": "adc6714aac20f5462a0ecec50ab4806b2f3ab0db",
      "tree": "54650818f8664ba76e6cad1632d463ed6b9aec74",
      "parents": [
        "dfc145572813c5d3848feb4029ff8bfb127ab66a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 22 01:40:42 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 22 01:40:42 2019 +0200"
      },
      "message": "patch 8.1.1579: dict and list could be GC\u0027ed while displaying error\n\nProblem:    Dict and list could be GC\u0027ed while displaying error in a timer.\n            (Yasuhiro Matsumoto)\nSolution:   Block garbage collection when executing a timer.  Add\n            test_garbagecollect_soon(). Add \"no_wait_return\" to\n            test_override(). (closes #4571)\n"
    },
    {
      "commit": "ae943150d3a2868a89df802c9f530331474451ec",
      "tree": "26ba407cb4f856dace31834fbf9fdcef0dd95f0b",
      "parents": [
        "6313c4f41d0e1d91b4217557685c014ea919915f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 16 22:54:14 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 16 22:54:14 2019 +0200"
      },
      "message": "patch 8.1.1561: popup_setoptions() is not implemented yet\n\nProblem:    Popup_setoptions() is not implemented yet.\nSolution:   Implement popup_setoptions().  Also add more fields to\n            popup_getoptions().\n"
    },
    {
      "commit": "b0ebbda06cf1a4a7c40cb274529c4c53de534e32",
      "tree": "8f0a2b35f078b542cb168e58d273304ee18efeed",
      "parents": [
        "ca2f7037c1a53bdbb6f5dc0a2f92d50020e062cc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 02 16:51:21 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 02 16:51:21 2019 +0200"
      },
      "message": "patch 8.1.1452: line and col property of popup windows not properly checked\n\nProblem:    Line and col property of popup windows not properly checked.\nSolution:   Check for \"+\" or \"-\" sign.\n"
    }
  ],
  "next": "c799fe206e61f2e2c1231bc46cbe4bb354f3da69"
}
