)]}'
{
  "log": [
    {
      "commit": "cb90ea9cba6f033fe141db0e466fb4117f28402b",
      "tree": "0de214ceba937afe0bfde7ae4b7913f19a1c5c62",
      "parents": [
        "6bff6a2fa449b9149eb2db4851e0b62a173b8748"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Mon Aug 19 21:45:23 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Aug 19 21:47:35 2024 +0200"
      },
      "message": "patch 9.1.0682: Vim9: Segfault with uninitialized funcref\n\nProblem:  Vim9: Segfault with uninitialized funcref\n          (Daniel Viberg)\nSolution: Check the Funcref for being Null before trying to access it\n          (Ernie Rael)\n\nfixes: #15523\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "c1ed788c1b41db9b5f1ef548dc877f771f535bbe",
      "tree": "365d5c779316b7e989d3a37a4211332cf8e39ad8",
      "parents": [
        "b29f4abcd4b3382fa746edd1d0562b7b48c9de60"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Aug 01 22:46:54 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 01 22:46:54 2024 +0200"
      },
      "message": "patch 9.1.0649: Wrong comment for \"len\" argument of call_simple_func()\n\nProblem:  Wrong comment for \"len\" argument of call_simple_func().\nSolution: Remove the \"or -1 to use strlen()\".  Also change its type to\n          size_t to remove one cast. (zeertzjq)\n\ncloses: #15410\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "164096927b8691085206dae3975766639a9a16e2",
      "tree": "f6464009d20bcaa73b2fdaf973da61c2a743ed54",
      "parents": [
        "30a8ad675d183c15c47b42e37199e98e2f924d69"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Wed Jul 31 22:18:11 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Jul 31 22:18:11 2024 +0200"
      },
      "message": "patch 9.1.0646: Vim9: imported function may not be found\n\nProblem:  Vim9: imported function may not be found\nSolution: Try to find the function by name (Ernie Rael)\n\nfixes: #15381\ncloses: #15382\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "48b7d05a4f88c4326bd5d7a73a523f2d953b3e51",
      "tree": "241c33ce0660a03e6705448665be9dbb133de211",
      "parents": [
        "03acd4761be1c2766d3ec17534ea63cdf8dd565d"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Tue Jul 09 18:24:59 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Jul 09 18:31:12 2024 +0200"
      },
      "message": "patch 9.1.0547: No way to get the arity of a Vim function\n\nProblem:  No way to get the arity of a Vim function\n          (Austin Ziegler)\nSolution: Enhance get() Vim script function to return the function\n          argument info using get(func, \"arity\") (LemonBoy)\n\nfixes: #15097\ncloses: #15109\n\nSigned-off-by: LemonBoy \u003cthatlemon@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "5715a726282018e708cff7dd930c9f8f7c37fa7e",
      "tree": "f6c0049084d51445a5d1bd00d47447981707b16f",
      "parents": [
        "c8330b8fff8e44c450a606ba91c1fec5f41478f7"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri May 03 18:24:07 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri May 03 18:27:51 2024 +0200"
      },
      "message": "patch 9.1.0391: Vim9: could improve testing\n\nProblem:  Vim9: could improve testing\n          (Ernie Rael)\nSolution: Support defcompile for test_override() to\n          improve testing (Yegappan Lakshmanan)\n\nfixes: #14553\ncloses: #14712\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "1817ccdb107ceeaf5c48fe193da5146682c15ca6",
      "tree": "1b0fecad67841b8cd509468fad8ee6a3d0957fdb",
      "parents": [
        "aa8e22b035dd669cb47c9237f9c9a917ec6a0ec4"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Wed Apr 10 17:37:47 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Apr 10 17:37:47 2024 +0200"
      },
      "message": "patch 9.1.0301: Vim9: heredoc start may be recognized in string\n\nProblem:  Vim9: heredoc start may be recognized in string.\nSolution: Don\u0027t skip to closing bracket for invalid list assignment.\n          (zeertzjq)\n\ncloses: #14472\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "9a91d2b72c20f213bbf77f27b7edd01e0e43d5e0",
      "tree": "a7eeb41a66f128f991990a2d5785684423306349",
      "parents": [
        "1af0fbf955f799392f614bc38f9d2fcbd9960526"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Tue Apr 09 21:47:10 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Apr 09 21:47:10 2024 +0200"
      },
      "message": "patch 9.1.0287: Vim9: comment may be treated as heredoc start\n\nProblem:  Vim9: comment may be treated as heredoc start.\n          (Ernie Rael)\nSolution: Use skip_var_list() instead of find_name_end().\n          (zeertzjq)\n\nfixes: #14444\ncloses: #14446\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "915f3bf4c157e8f1667f52a07eb98dcecfb76875",
      "tree": "772663073d208e47b6803a18a86686621e0d9704",
      "parents": [
        "e9ff79a7c9affea970f50de2aa65f62080b55323"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Apr 05 20:12:19 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Apr 05 20:12:19 2024 +0200"
      },
      "message": "patch 9.1.0270: a few minor issues to fix\n\nThe following is a collection of some small fixes:\n\n- Problem:  Vim9: funcref pointer pt leaks, when function is not found\n  Solution: Free funcref pointer in case of error (fixes: #14254)\n\n- Problem:  memory leak of crypt state pointer allocation fails\n  Solution: free crypt state pointer properly (fixes: #14253)\n\n- Problem:  Vim9: Leaking memory when compiling dict fails\n  Solution: Free the memory in case of error (fixes: #14252)\n\n- Problem:  Coverity complains about derefencing obj_members pointer\n            (after v9.1.0261)\n  Solution: Verify that obj_members ptr is non-null before accessing it\n\n  References: https://scan5.scan.coverity.com/#/project-view/41242/10101?selectedIssue\u003d1596133\n\ncloses: #14412\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "3fa8f7728a47822e4efd106ab30c83c28f198b3c",
      "tree": "f5f4721859b71c1ccc6709fcbb3e896e6b77f6ca",
      "parents": [
        "4a65391ca273f2eca84f5ec7bd846693232dfacc"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Apr 04 21:42:07 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Apr 04 21:42:07 2024 +0200"
      },
      "message": "patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes\n\nProblem:  Vim9: Problem with lambda blocks in enums and classes\n          (Aliaksei Budavei)\nSolution: Support evaluating lambda blocks from a string, skip over\n          comments (Yegappan Lakshmanan)\n\nfixes: #14350\ncloses: #14405\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "3e33650b3a9939f6b942c1d1eccdb261ea17a647",
      "tree": "167bd86efdf040f2866be1547d356a612b5aa2ea",
      "parents": [
        "bd28cae1f1c21c0e3743e3427c98bbd848fad237"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Apr 04 19:35:59 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Apr 04 19:35:59 2024 +0200"
      },
      "message": "patch 9.1.0261: Vim9: protected class and funcrefs accessible outside the class\n\nProblem:  Vim9: protected class and funcrefs accessible outside the class\n          (Aliaksei Budavei)\nSolution: Check if class and object funcrefs are protected\n          (Yegappan)\n\ncloses: #14407\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6a04bf5ee523b2d6d01d7290e356a30de219f465",
      "tree": "65312ca88f606153a853c89063efc51bfdc5b2d5",
      "parents": [
        "20eaf8b78d9724fbcd8d55bff9f2fb5cc8c2ff08"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sat Mar 16 09:39:06 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Mar 16 09:39:06 2024 +0100"
      },
      "message": "patch 9.1.0182: Can define function with invalid name inside \u0027formatexpr\u0027\n\nProblem:  Can define function with invalid name inside \u0027formatexpr\u0027.\nSolution: Use goto instead of checking for did_emsg later.\n          (zeertzjq)\n\ncloses: #14209\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "d3eae7bc116297f70220f21ded436ed0a88066d8",
      "tree": "29837ff70cabc4f3238be13df845dcb6ace10da9",
      "parents": [
        "215703563757a4464907ead6fb9edaeb7f430bea"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Mar 03 16:26:58 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Mar 03 16:34:51 2024 +0100"
      },
      "message": "patch 9.1.0148: Vim9: can\u0027t call internal methods with objects\n\nProblem:  Vim9: can\u0027t call internal methods with objects\nSolution: Add support for empty(), len() and string() function\n          calls for objects (Yegappan Lakshmanan)\n\ncloses: #14129\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "4f32c83a775a195ae7e1545b2840fb773f93414f",
      "tree": "d9519e67920220913c08fee59ccc63f7c37572c0",
      "parents": [
        "8610f74382039c9c54d6c4aeb978d252e762360a"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Jan 12 17:36:40 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Jan 12 17:41:09 2024 +0100"
      },
      "message": "patch 9.1.0020: Vim9: cannot compile all methods in a class\n\nProblem:  Vim9: cannot compile all methods in a class\nSolution: Support compiling all the methods in a class using :defcompile\n          (Yegappan Lakshmanan)\n\ncloses: #13844\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "184f71cc6868a240dc872ed2852542bbc1d43e28",
      "tree": "314948c5cf288feb24305b329d58cbd750157560",
      "parents": [
        "4d8cb683b1543ec02563cdd2d068ce5f82f90539"
      ],
      "author": {
        "name": "Keith Thompson",
        "email": "Keith.S.Thompson@gmail.com",
        "time": "Thu Jan 04 21:19:04 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Jan 04 21:19:04 2024 +0100"
      },
      "message": "patch 9.1.0006: is*() and to*() function may be unsafe\n\nProblem:  is*() and to*() function may be unsafe\nSolution: Add SAFE_* macros and start using those instead\n          (Keith Thompson)\n\nUse SAFE_() macros for is*() and to*() functions\n\nThe standard is*() and to*() functions declared in \u003cctype.h\u003e have\nundefined behavior for negative arguments other than EOF.  If plain char\nis signed, passing an unchecked value from argv for from user input\nto one of these functions has undefined behavior.\n\nSolution: Add SAFE_*() macros that cast the argument to unsigned char.\n\nMost implementations behave sanely for negative arguments, and most\ncharacter values in practice are non-negative, but it\u0027s still best\nto avoid undefined behavior.\n\nThe change from #13347 has been omitted, as this has already been\nseparately fixed in commit ac709e2fc0db6d31abb7da96f743c40956b60c3a\n(v9.0.2054)\n\nfixes: #13332\ncloses: #13347\n\nSigned-off-by: Keith Thompson \u003cKeith.S.Thompson@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "fe583b1e5987fbfdb5f2141c133dbff9665ed301",
      "tree": "7dad9140e37547e0e6fa8c587507ec2c736188bd",
      "parents": [
        "632b38b45fcd5143d7694e8b628400ec5e4520bd"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Dec 21 16:59:26 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Dec 21 17:03:31 2023 +0100"
      },
      "message": "patch 9.0.2183: Maximum callback depth is not configurable\n\nProblem:  Maximum callback depth is not configurable.\nSolution: Revert patch 9.0.2103.  Set \u0027maxfuncdepth\u0027 in test.\n          (zeertzjq)\n\nfixes: #13732\ncloses: #13736\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6fdb6280821a822768df5689a5d727e37d38306c",
      "tree": "df4499466c758d7c18f5390567f72b52f1da525c",
      "parents": [
        "63210c214afa6589b6132bd060908a8711f4567f"
      ],
      "author": {
        "name": "Zoltan Arpadffy",
        "email": "zoltan.arpadffy@gmail.com",
        "time": "Tue Dec 19 20:53:07 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Dec 19 20:53:07 2023 +0100"
      },
      "message": "patch 9.0.2180: POSIX function name in exarg causes issues\n\nProblem:  POSIX function name in exarg struct causes issues\n          on OpenVMS\nSolution: Rename getline member in exarg struct to ea_getline,\n          remove isinf() workaround for VMS\n\nThere are compilers that do not treat well POSIX functions - like\ngetline - usage in the structs.\n\nOlder VMS compilers could digest this... but the newer OpenVMS compilers\n( like VSI C x86-64 X7.4-843 (GEM 50XB9) ) cannot deal with these\nstructs. This could be limited to getline() that is defined via\ngetdelim() and might not affect all POSIX functions in general - but\navoiding POSIX function names usage in the structs is a \"safe side\"\npractice without compromising the functionality or the code readability.\n\nThe previous OpenVMS X86 port used a workaround limiting the compiler\ncapabilities using __CRTL_VER_OVERRIDE\u003d80400000\nIn order to make the OpenVMS port future proof, this pull request\nproposes a possible solution.\n\ncloses: #13704\n\nSigned-off-by: Zoltan Arpadffy \u003czoltan.arpadffy@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "b077b58809f6bd1078f409829cc1964b8475f9fc",
      "tree": "107b60d5e8ef6e8f0471de02f281dbc7e510a919",
      "parents": [
        "9a775b4a2ae658e61f9d6582de72ea7a1b241aaa"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Thu Dec 14 20:11:44 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Dec 14 20:14:13 2023 +0100"
      },
      "message": "patch 9.0.2164: Vim9: can use type a func arg/return value\n\nProblem:  Vim9: can use type a func arg/return value\nSolution: Check if using type as function argument or return value\n\ncloses: #13675\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "0f28791b215bd4c22ed580839409c2f7d39d8140",
      "tree": "48426013e84963dab16dcc478a9486c158b788a8",
      "parents": [
        "e4a450a87ba532cbfe1c4e97cac378eaafc3ae39"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Dec 11 17:53:25 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Dec 11 17:53:25 2023 +0100"
      },
      "message": "patch 9.0.2158: [security]: use-after-free in check_argument_type\n\nProblem:  [security]: use-after-free in check_argument_type\nSolution: Reset function type pointer when freeing the function type\n          list\n\nfunction pointer fp-\u003euf_func_type may point to the same memory, that was\nallocated for fp-\u003euf_type_list. However, when cleaning up a function\ndefinition (e.g. because it was invalid), fp-\u003euf_type_list will be\nfreed, but fp-\u003euf_func_type may still point to the same (now) invalid\nmemory address.\n\nSo when freeing the fp-\u003euf_type_list, check if fp-\u003efunc_type points to\nany of those types and if it does, reset the fp-\u003euf_func_type pointer to\nthe t_func_any (default) type pointer\n\ncloses: #13652\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "e4a450a87ba532cbfe1c4e97cac378eaafc3ae39",
      "tree": "9484dfdb32cba5112d6af8868e34066c1dd6ec29",
      "parents": [
        "9ed53752df1020a6881ac68d1bde2852c9a680aa"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 08 20:57:38 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Dec 11 17:50:08 2023 +0100"
      },
      "message": "patch 9.0.2157: Vim9: incorrectly parses :def func definitions\n\nProblem:  Vim9: incorrectly parses :def func definitions\nSolution: check for more context when parsing function args\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nIncorrectly parses def function definitions\n\nVim currently allows to define the following vim9 function:\n  def Func(f\u003d\n  )\n  enddef\n\nIt currently thinks a Lambda is following the `\u003d` but it doesn\u0027t check,\nthat there is actually an expression following. So when such a think is\nencountered, remember that an expression should be following.\n\nIf no expression is coming in the next few lines, fail parsing the\nfunction arguments, which will Vim no longer accept such a function.\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "2076463e383901cef44685aaf4b63e4306444f9e",
      "tree": "2c222e0bc431e36f3d9ae6f3663ccb4bf2c893e4",
      "parents": [
        "9588666360e94de3ff58d4bc79aa9148fbf5fc44"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Nov 12 16:59:29 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Nov 12 16:59:29 2023 +0100"
      },
      "message": "patch 9.0.2103: recursive callback may cause issues on some archs\n\nProblem:  recursive callback may cause issues on some archs\nSolution: Decrease the limit drastically to 20\n\nRecursive callback limit causes problems on some architectures\n\nSince commit 47510f3d6598a1218958c03ed11337a43b73f48d we have a test\nthat causes a recursive popup callback function to be executed. However\nit seems the current limit of \u0027maxfuncdepth\u0027 option value is still too\nrecursive for some 32bit architectures (e.g. 32bit ARM).\n\nSo instead of allowing a default limit of 100 (default value for\n\u0027maxfuncdepth\u0027), let\u0027s reduce this limit to 20. I don\u0027t think there is a\nuse case where one would need such a high recursive callback limit and a\nlimit of 20 seems reasonable (although it is currently hard-coded).\n\ncloses: #13495\ncloses: #13502\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "c59c1e0d88651a71ece7366e418f1253abbe2a28",
      "tree": "98453e9da10f027b806d3c3cf2cd524df85241c5",
      "parents": [
        "d7b616d0ad006db06140729313b6217677cc4e80"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Oct 19 10:52:34 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 19 10:52:34 2023 +0200"
      },
      "message": "patch 9.0.2050: Vim9: crash with deferred function call and exception\n\nProblem:  Vim9: crash with deferred function call and exception\nSolution: Save and restore exception state\n\nCrash when a deferred function is called after an exception and another\nexception is thrown\n\ncloses: #13376\ncloses: #13377\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "0672595fd50e9ae668676a40e28ebf66d7f52392",
      "tree": "271158c1d27931b4fc4b227ebf14a541f85d65bf",
      "parents": [
        "5036e698520b2c39e4df5738f026a68ba2e76fef"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Oct 18 11:47:37 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 18 11:47:37 2023 +0200"
      },
      "message": "patch 9.0.2044: Vim9: exceptions confuse defered functions\n\nProblem:  Vim9: exceptions confuse defered functions\nSolution: save and restore exception state when calling defered\n          functions\n\ncloses: #13364\ncloses: #13372\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "47510f3d6598a1218958c03ed11337a43b73f48d",
      "tree": "bbe51bf33ac367ac3a534d8f779d71c1d7e8011f",
      "parents": [
        "1ace49fb98fa93e2fcff421a5f7da1aa41c512ed"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Oct 15 09:56:16 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Oct 15 09:56:16 2023 +0200"
      },
      "message": "patch 9.0.2030: no max callback recursion limit\n\nProblem:  no max callback recursion limit\nSolution: bail out, if max call recursion for callback functions\n          has been reached.\n\nThis checks the \u0027maxfuncdepth\u0027 setting and throws E169 when a callback\nfunction recursively calls itself.\n\ncloses: #13337\ncloses: #13339\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "1ace49fb98fa93e2fcff421a5f7da1aa41c512ed",
      "tree": "81bdee80df4b3e83614071cdbb2c66728c6407c7",
      "parents": [
        "5d03525cdef5db1b1cedfa26c6f8a21aaa207ec0"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Oct 15 09:53:41 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Oct 15 09:53:41 2023 +0200"
      },
      "message": "patch 9.0.2029: Vim9: no support for partials using call()\n\nProblem:  Vim9: no support for partials using call()\nSolution: Add support\n\ncloses: #13341\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "db38552dcdc7460459df8bf5cf02666256045308",
      "tree": "79c3631e1c83ad547356bea130ac9e247216dc87",
      "parents": [
        "03ca4002c1dcd34c4b17fe4a491b02d77ec2c887"
      ],
      "author": {
        "name": "h-east",
        "email": "h.east.727@gmail.com",
        "time": "Thu Sep 28 22:18:19 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Sep 28 22:18:19 2023 +0200"
      },
      "message": "patch 9.0.1948: Vim9: object variable \"this.\" should only be used in constructor\n\nProblem:  Vim9: object variable \"this.\" should only be used in\n          constructor\nSolution: Disallow to this in normal object methods (other than\n          constructors)\n\ncloses: #13152\ncloses: #13212\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: h-east \u003ch.east.727@gmail.com\u003e\n"
    },
    {
      "commit": "3aa114463f0219eba2e9fe0517067be9fcaf8248",
      "tree": "d6899a588b541499c4f830fc9a305e327a119ae0",
      "parents": [
        "e1b95f525297abdc94dbebc4b79ed14aeb029511"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Sep 25 12:13:17 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Sep 25 12:13:17 2023 +0200"
      },
      "message": "patch 9.0.1941: Memory leak detected\n\nProblem:  Memory leak detected (after 9.0.1928)\nSolution: Free arg_objm in get_lambda_tv()\n\ncloses: #13181\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "b895b0fabce7d952a6617eb69fc1e1597ece8b00",
      "tree": "2fd427260aee9d33dea14bfd4464f80d47a4e9ab",
      "parents": [
        "ceee7a808ce82b0c6bd84e0b6fc1dfb0475c99aa"
      ],
      "author": {
        "name": "h-east",
        "email": "h.east.727@gmail.com",
        "time": "Sun Sep 24 15:46:31 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Sep 24 15:46:31 2023 +0200"
      },
      "message": "patch 9.0.1928: Vim9: constructor type checking bug\n\nProblem:  Vim9: constructor type checking bug\nSolution: Fix class constructor regression\n\ncloses: #13102\ncloses: #13113\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: h-east \u003ch.east.727@gmail.com\u003e\n"
    },
    {
      "commit": "7bcd25cad3e9d5c9e25c7ae2bde67285c26f73cd",
      "tree": "9834383bcf8ab51010fa003c72eb35bfa3d6f4ba",
      "parents": [
        "86cfb39030eb557e1a1c7804f9c147556ca5dbf1"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Sep 08 19:27:51 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Sep 08 19:29:31 2023 +0200"
      },
      "message": "patch 9.0.1885: Vim9: no support for abstract methods\n\nProblem:  Vim9: no support for abstract methods\nSolution: Add support for defining abstract methods in an abstract class\n\ncloses: #13044\ncloses: #13046\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "00cb247465856eaa546c520b65cf0ccc753ee1cd",
      "tree": "e6925577888a5fa96c3fb5ae4b68dd8c02bc0d1d",
      "parents": [
        "28a60f898d5cd7023596b0e96a081b1573edc807"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Sep 05 20:46:25 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Sep 05 20:53:46 2023 +0200"
      },
      "message": "patch 9.0.1876: Vim9: parsing commands with newlines wrong\n\nProblem:  Vim9: parsing commands with newlines wrong\nSolution: Accept a \u0027\\n\u0027 for parsing lists and command arguments\n\ncloses: #13015\ncloses: #13020\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "cd7293bf6c358bb0e183582a2927fc03566d29f6",
      "tree": "d1fe17d7fdd8f5a2414761eab2879a80494e4e27",
      "parents": [
        "03e44a1d70e914504e6151fe88ad1e574cbf0a59"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Aug 27 19:18:23 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 27 19:18:23 2023 +0200"
      },
      "message": "patch 9.0.1804: Vim9: no support for private object methods\n\nProblem:  Vim9: no support for private object methods\nSolution: Add support for private object/class methods\n\ncloses: #12920\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "ce723f391844695a07d9af02ef60330afd3e158c",
      "tree": "2012dc7b8f50b2dadb148da68343c40a18b9a63c",
      "parents": [
        "5ca05fa59e587f9724306d4788c5dde07fc7225b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 10 19:00:12 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 10 19:00:12 2023 +0100"
      },
      "message": "patch 9.0.1625: \"super\" is not considered a reserved name\n\nProblem:    \"super\" is not considered a reserved name.\nSolution:   Add \"super\" to the list of reserved names. (closes #12515)\n"
    },
    {
      "commit": "5ca05fa59e587f9724306d4788c5dde07fc7225b",
      "tree": "73e72af12e3e1579a0c3530554747b0639626341",
      "parents": [
        "f07d1a7108f29068efeb61d91454c4120ab5ae6c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 10 16:45:13 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 10 16:45:13 2023 +0100"
      },
      "message": "patch 9.0.1624: crash when calling object constructor\n\nProblem:    Crash when calling object constructor from legacy script. (Israel\n            Chauca Fuentes)\nSolution:   Pass a pointer for \"ufunc\". (closes #12502)\n"
    },
    {
      "commit": "114ec813b3a7f70d7a1c86e87226f5273e9d1def",
      "tree": "e877a6d701e99ca73a2843264fda8b2043281e09",
      "parents": [
        "abc8130d6a680026ffb2cc36b74d239e88f775d6"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Sun Jun 04 18:11:35 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 04 18:11:35 2023 +0100"
      },
      "message": "patch 9.0.1605: crash when calling method on super in child constructor\n\nProblem:    Crash when calling method on super in child constructor. (Israel\n            Chauca Fuentes)\nSolution:   Clear the type list. (Ernie Rael, closes #12489, closes #12471)\n"
    },
    {
      "commit": "097c5370ea8abab17ceb0f3bcd74f57b1655c7f7",
      "tree": "031d9928ff74a50cb4f7eb25270e13561a2d8d27",
      "parents": [
        "a8490a4952c320f234ae4528d4a1e812a27f3a0a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 24 21:02:24 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 24 21:02:24 2023 +0100"
      },
      "message": "patch 9.0.1576: users may not know what to do with an internal error\n\nProblem:    Users may not know what to do with an internal error.\nSolution:   Add a translated message with instructions.\n"
    },
    {
      "commit": "79cdf026f1b8a16298ee73be497c4bd5f3458cde",
      "tree": "2f2381a497126df7030b96450b1b1bfd4257c487",
      "parents": [
        "bf63011a52a3cc32609ae5945665875062a5ae50"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 20 14:07:00 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 20 14:07:00 2023 +0100"
      },
      "message": "patch 9.0.1571: RedrawingDisabled not used consistently\n\nProblem:    RedrawingDisabled not used consistently.\nSolution:   Avoid RedrawingDisabled going negative.  Set RedrawingDisabled in\n            win_split_ins(). (closes #11961)\n"
    },
    {
      "commit": "2ba51236fb7c27fe16dad4c44242f00e17c19726",
      "tree": "c394d7f9f7ca93244bbb169a4c42c6e1870f385e",
      "parents": [
        "a2c0028fdf8dcf0408e27be730ac0e691ef9559b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 15 16:22:38 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 15 16:22:38 2023 +0100"
      },
      "message": "patch 9.0.1559: function argument types not always checked\n\nProblem:    Function argument types not always checked and using v:none may\n            cause an error.\nSolution:   Check argument types once the function type is known.  Do not give\n            an error for using v:none as an argument. (closes #12200)\n"
    },
    {
      "commit": "a93d9cdc74f70ca2c85781496ffae4ca738fcd88",
      "tree": "25c7b84548c6fccafd119edb84807db998351f1f",
      "parents": [
        "17b695190d63b2de745499cb40a383c2672e275e"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Tue May 02 16:25:47 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 02 16:25:47 2023 +0100"
      },
      "message": "patch 9.0.1505: error when heredoc content looks like heredoc\n\nProblem:    Error when heredoc content looks like heredoc.\nSolution:   Handle curly expressions. (closes #12325)\n"
    },
    {
      "commit": "1be4b81bfb3d7edf0e2ae41711d429e8fa5e0555",
      "tree": "716eb27d91cb33a19ce16127f73cec3fdffd1e89",
      "parents": [
        "960cf9119e3f4922ca9719feb5e0c0bc5e3b9840"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Wed Apr 19 14:21:24 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 19 14:21:24 2023 +0100"
      },
      "message": "patch 9.0.1470: deferred functions invoked in unexpected order\n\nProblem:    Deferred functions invoked in unexpected order when using :qa and\n            autocommands.\nSolution:   Call deferred functions for the current funccal before using the\n            stack. (closes #12278)\n"
    },
    {
      "commit": "960cf9119e3f4922ca9719feb5e0c0bc5e3b9840",
      "tree": "a5ec9c284c59c4c57ddd784b051014c532c8bb5d",
      "parents": [
        "a1f2b5ddc63d4e2b6ab047d8c839dd8477b36aba"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Tue Apr 18 21:52:54 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 18 21:52:54 2023 +0100"
      },
      "message": "patch 9.0.1469: deferred functions not called from autocommands\n\nProblem:    Deferred functions not called from autocommands.\nSolution:   Also go through the funccal_stack. (closes #12267)\n"
    },
    {
      "commit": "42994bf678f46dc9ca66e49f512261da8864fff6",
      "tree": "3daa7460a610b439456f8bfabcd72b6b88efe8db",
      "parents": [
        "fc8a601c3251c0388a88c1235b18c529385f7196"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 17 19:23:45 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 17 19:23:45 2023 +0100"
      },
      "message": "patch 9.0.1462: recursively calling :defer function if it does :qa\n\nProblem:    Recursively calling :defer function if it does :qa.\nSolution:   Clear the defer entry before calling the function. (closes #12266)\n"
    },
    {
      "commit": "7e5fe38efc105721400048a2ffdeddbe1b9c0650",
      "tree": "670353de5a42ddc725f9c109f80b05680a03d0e8",
      "parents": [
        "b49dfd0cf296623af2d756cefc3e73b5b307734e"
      ],
      "author": {
        "name": "ichizok",
        "email": "gclient.gaap@gmail.com",
        "time": "Sat Apr 15 13:17:50 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 15 13:17:50 2023 +0100"
      },
      "message": "patch 9.0.1454: code indenting is confused by macros\n\nProblem:    Code indenting is confused by macros.\nSolution:   Put semicolon after the macros instead of inside. (Ozaki Kiichi,\n            closes #12257)\n"
    },
    {
      "commit": "5299c0933f942c61bfd48064c91365e518fa868c",
      "tree": "0f99e21c7b84aa1afd60153aa4c549d6d7324c69",
      "parents": [
        "01967f5b1042b375b38098eceaf31671902c8dbb"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Wed Apr 12 20:48:16 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 12 20:48:16 2023 +0100"
      },
      "message": "patch 9.0.1446: unnecessary checks for the \"skip\" flag when skipping\n\nProblem:    Unnecessary checks for the \"skip\" flag when skipping.\nSolution:   Remove the unnecessary checks. (closes #12254)\n"
    },
    {
      "commit": "960dcbd098c761dd623bec9492d5391ff6e8dceb",
      "tree": "df2abb6d73be0c31de679fa00251e133a0e99ab6",
      "parents": [
        "14113fdf9cb3d588c0d1c3a210246b981cf5aad3"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Mar 07 17:45:11 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 07 17:45:11 2023 +0000"
      },
      "message": "patch 9.0.1391: \"clear\" macros are not always used\n\nProblem:    \"clear\" macros are not always used.\nSolution:   Use ALLOC_ONE, VIM_CLEAR, CLEAR_POINTER and CLEAR_FIELD in more\n            places. (Yegappan Lakshmanan, closes #12104)\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": "99a7c0d89cf77c0a908b60191e63f41f04f9e793",
      "tree": "f69745ee2fa5641b0934326c92cdd6920df59e56",
      "parents": [
        "cfce5cf542db20c7beba5b4211c0ae3305a64a43"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 21 19:55:14 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 21 19:55:14 2023 +0000"
      },
      "message": "patch 9.0.1338: :defcompile and :disassemble can\u0027t find class method\n\nProblem:    :defcompile and :disassemble can\u0027t find class method. (Ernie Rael)\nSolution:   Make a class name and class.method name work. (closes #11984)\n"
    },
    {
      "commit": "a23a11b5bf03454b71fdb5deac0d5f641e222160",
      "tree": "5ce9eb5b9668eb891072ee7e03823b1c68214656",
      "parents": [
        "d950984489e50b12d87c85f0cce1d672c880aa23"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Feb 21 14:27:41 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 21 14:27:41 2023 +0000"
      },
      "message": "patch 9.0.1336: functions without arguments are not always declared properly\n\nProblem:    Functions without arguments are not always declared properly.\nSolution:   Use \"(void)\" instead of \"()\". (Yegappan Lakshmanan, closes #12031)\n"
    },
    {
      "commit": "d114975b9bec30ec1486ebc70db6b802d0f1cfb8",
      "tree": "cb4009d8f68184e58cae9adac10ac27ddbe70af3",
      "parents": [
        "0917e867632199883c07c2d7534f7091b1d12607"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 18 15:31:53 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 18 15:31:53 2023 +0000"
      },
      "message": "patch 9.0.1321: vimscript test fails where using {expr} syntax\n\nProblem:    vimscript test fails where using {expr} syntax.\nSolution:   Only return FCERR_FAILED in call_user_func() for Vim9 script.\n"
    },
    {
      "commit": "0917e867632199883c07c2d7534f7091b1d12607",
      "tree": "803dcaf3a0803718b7d08dd6d356132543f5869a",
      "parents": [
        "9de960ace0f017fcfeaf64a2f6492f0f88b11fdb"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 18 14:42:44 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 18 14:42:44 2023 +0000"
      },
      "message": "patch 9.0.1320: checking the type of a null object causes a crash\n\nProblem:    Checking the type of a null object causes a crash.\nSolution:   Don\u0027t try to get the class of a null object. (closes #12005)\n            Handle error from calling a user function better.\n"
    },
    {
      "commit": "142ed77898facf8f423fee2717efee1749c55f9a",
      "tree": "9b8f51cd7992358ae3a01c9cd152eed223d1827e",
      "parents": [
        "032713f8299abd92fcfb1e490d1ae5c1ecadde41"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Jan 26 12:00:00 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 26 12:00:00 2023 +0000"
      },
      "message": "patch 9.0.1246: 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 #11887)\n"
    },
    {
      "commit": "b58201035060d223d4d795ef9c3bc6b171eee9af",
      "tree": "acb0cece97486d9a4358ab73b138cf92f54f128b",
      "parents": [
        "62a6923470827acbf124df41134ae6df52f334e6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 25 12:27:13 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 25 12:27:13 2023 +0000"
      },
      "message": "patch 9.0.1241: Coverity warns for not checking function return value\n\nProblem:    Coverity warns for not checking function return value.\nSolution:   Explicitly ignore the return value.\n"
    },
    {
      "commit": "c8ab30a349ee45ef6c3b6af8ee5ff53d2f7bf891",
      "tree": "dab7e56ef277b57f5469f13b286233e514bb677d",
      "parents": [
        "e01e5215f927f83778ad7494abb0007aa52d08c3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 09 11:35:47 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 09 11:35:47 2023 +0000"
      },
      "message": "patch 9.0.1161: Coverity warns for using strcpy()\n\nProblem:    Coverity warns for using strcpy().\nSolution:   Call a function to set the function name.\n"
    },
    {
      "commit": "e01e5215f927f83778ad7494abb0007aa52d08c3",
      "tree": "733b0428f47732fcc2cf83ce583aa62d622961b6",
      "parents": [
        "8367716a6e9589d61a771e6c329da05c9b55e61a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 08 20:31:18 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 08 20:31:18 2023 +0000"
      },
      "message": "patch 9.0.1160: ASAN error for ufunc_T allocated with wrong size\n\nProblem:    ASAN error for ufunc_T allocated with wrong size.\nSolution:   Make sure the size can always fit the struct.\n"
    },
    {
      "commit": "8367716a6e9589d61a771e6c329da05c9b55e61a",
      "tree": "204db43661aad4e932fe0475a302378778457bf0",
      "parents": [
        "7f8b2559a30e2e2a443c35b28e94c6b45ba7ae04"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 08 19:54:10 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 08 19:54:10 2023 +0000"
      },
      "message": "patch 9.0.1159: extends argument for class not implemented yet\n\nProblem:    Extends argument for class not implemented yet.\nSolution:   Basic implementation of \"extends\".\n"
    },
    {
      "commit": "554d0313022c3977c71f7dcbc5c841ef43d988a6",
      "tree": "e21ee06542388f5757b04f8cd987cfada2932db1",
      "parents": [
        "cf760d50dceb46bd583321c210b88b92360eb959"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 05 19:59:18 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 05 19:59:18 2023 +0000"
      },
      "message": "patch 9.0.1150: :interface is not implemented yet\n\nProblem:    :interface is not implemented yet.\nSolution:   Implement the basics of :interface.\n"
    },
    {
      "commit": "f057171d8b562c72334fd7c15c89ff787358ce3a",
      "tree": "efdfcb780b6ff5b54bc3bd007cdad030eae24332",
      "parents": [
        "aaa16b09180080284c4a5049fe16bdaccbb13b74"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 04 13:16:20 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 04 13:16:20 2023 +0000"
      },
      "message": "patch 9.0.1142: crash and/or memory leak when redefining function\n\nProblem:    Crash and/or memory leak when redefining function after error.\nSolution:   Clear pointer after making a copy.  Clear arrays on failure.\n            (closes #11774)\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": "65b0d1676814ee08fb58ef8d64dd342d1d883192",
      "tree": "4fbd70e4211e702a5212c717fe09636222f23026",
      "parents": [
        "692fe0889c44d97c4a1cc822bc8de189859c51cb"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 13 18:43:22 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 13 18:43:22 2022 +0000"
      },
      "message": "patch 9.0.1053: default constructor arguments are not optional\n\nProblem:    Default constructor arguments are not optional.\nSolution:   Use \"\u003d v:none\" to make constructor arguments optional.\n"
    },
    {
      "commit": "7ce7daf6cd6a7ed27eac060699026640b4b239a8",
      "tree": "bb6ddd44c1e6133c82ce791d9568405723f251af",
      "parents": [
        "6c87bbb4e45515e70ac1728cabd1451063bf427d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Dec 10 18:42:12 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Dec 10 18:42:12 2022 +0000"
      },
      "message": "patch 9.0.1045: in a class object members cannot be initialized\n\nProblem:    In a class object members cannot be initialized.\nSolution:   Support initializing object members. Make \"dissassemble\" work on\n            an object method.\n"
    },
    {
      "commit": "ffdaca9e6f3d39af6857ac52ced9385df203a152",
      "tree": "04ed8cbe05e072413dd394828d7661167ad63b6c",
      "parents": [
        "148bcd361097f85a1a51c408e7412d60c76df14d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 09 21:41:48 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 09 21:41:48 2022 +0000"
      },
      "message": "patch 9.0.1041: cannot define a method in a class\n\nProblem:    Cannot define a method in a class.\nSolution:   Implement defining an object method.  Make calling an object\n            method work.\n"
    },
    {
      "commit": "00b28d6c23d8e662cab27e461825777c0a2e387a",
      "tree": "ba11ed85b20cf03491e0f24b6d5bf348d2c19388",
      "parents": [
        "038e6d20e680ce8c850d07f6b035c4e1904c1201"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 08 15:32:33 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 08 15:32:33 2022 +0000"
      },
      "message": "patch 9.0.1031: Vim9 class is not implemented yet\n\nProblem:    Vim9 class is not implemented yet.\nSolution:   Add very basic class support.\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": "398a26f7fcd58fbc6e2329f892edbb7479a971bb",
      "tree": "4ddec1eaef1a6ad926ad32fe93b2a1d28bfc5cac",
      "parents": [
        "920d311480114274e4d73156edf4b49ba0b712dd"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 13 22:13:33 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 13 22:13:33 2022 +0000"
      },
      "message": "patch 9.0.0875: using freed memory when executing delfunc at more prompt\n\nProblem:    Using freed memory when executing delfunc at the more prompt.\nSolution:   Check function list not changed in another place. (closes #11437)\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": "87b4e5c5db9d1cfd6f2e79656e1a6cff3c69d15f",
      "tree": "a437917654ad79edd9764b4f67af33ce01228d6a",
      "parents": [
        "145d1fd91041bd2a22a11eef0357702e420796e2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 01 15:32:46 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 01 15:32:46 2022 +0100"
      },
      "message": "patch 9.0.0632: calling a function from an \"expr\" option has overhead\n\nProblem:    Calling a function from an \"expr\" option has too much overhead.\nSolution:   Add call_simple_func() and use it for \u0027foldexpr\u0027\n"
    },
    {
      "commit": "cfb4d4f312e740c2fbb70c29c47cf74a76f8b605",
      "tree": "72cdebc2780ff1e053637b5b820798be43a2532f",
      "parents": [
        "a5d1a67bee5672786c4b172f66ae4391e7b0cc57"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 30 19:19:04 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 30 19:19:04 2022 +0100"
      },
      "message": "patch 9.0.0630: in Vim9 script a numbered function cannot be called\n\nProblem:    In Vim9 script a numbered function cannot be called.\nSolution:   Do not require \"g:\" before a numbered function name.\n            (closes #11254)\n"
    },
    {
      "commit": "e9dcf13a3007d4f603e007e0526b0005fd026bc5",
      "tree": "b0e990dff3986cd6d729c1fb4ee924479666d566",
      "parents": [
        "87af60c91503e37c9144f8e48022b12994ce2c85"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Sep 24 11:30:41 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 24 11:30:41 2022 +0100"
      },
      "message": "patch 9.0.0568: autocmd code is indented more than needed\n\nProblem:    Autocmd code is indented more than needed.\nSolution:   Break out sooner. (Yegappan Lakshmanan, closes #11208)\n            Also in user function code.\n"
    },
    {
      "commit": "f5f4e85f0189790ab81c0005b703604721db13d4",
      "tree": "941a13046f1c770cc610519320f131c0b675e657",
      "parents": [
        "69082916c8b5d321545d60b9f5facad0a2dd5a4e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 22 22:03:14 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 22 22:03:14 2022 +0100"
      },
      "message": "patch 9.0.0553: no error for \"|\" after \"{\" in lamda\n\nProblem:    No error for \"|\" after \"{\" in lamda.\nSolution:   Check for invalid \"|\". (closes #11199)\n"
    },
    {
      "commit": "cc34181f9994d64f8c8fa2f5845eaf0cc963067f",
      "tree": "2909cd6f0d4d5f7e20b7daa76855c25fdef5dcb9",
      "parents": [
        "18ee0feb5dfbe51993dc715d24cf419ac92ebf92"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 19 15:54:34 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 19 15:54:34 2022 +0100"
      },
      "message": "patch 9.0.0502: a closure in a nested loop in a :def function does not work\n\nProblem:    A closure in a nested loop in a :def function does not work.\nSolution:   Use an array of loopvars, one per loop level.\n"
    },
    {
      "commit": "8fa745e7be3a791ac25f93ef0227bbc48ade8a37",
      "tree": "2784f5de78824527acc5d31f3eb96fd4264ac989",
      "parents": [
        "abd58d8aee7fec2b9e07c829eb925b0a1f7118db"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 16 19:04:24 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 16 19:04:24 2022 +0100"
      },
      "message": "patch 9.0.0481: in :def function all closures in loop get the same variables\n\nProblem:    In a :def function all closures in a loop get the same variables.\nSolution:   Use a separate list of variables for LOADOUTER and STOREOUTER.\n            Not copied at end of loop yet.\n"
    },
    {
      "commit": "48db5dafecacced4a9e42de3f92838b2d59beb4c",
      "tree": "e92793dc73268cef736c68c98ae2fccd5eee8804",
      "parents": [
        "dd674774bbe3774ff41b817bee0e32060ebcfdad"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Fri Sep 16 12:10:03 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 16 12:10:03 2022 +0100"
      },
      "message": "patch 9.0.0476: varargs does not work for replacement function of substitute()\n\nProblem:    Varargs does not work for replacement function of substitute().\nSolution:   Check the varargs flag of the function. (closes #11142)\n"
    },
    {
      "commit": "169003289fb4b2ad18fd7f5807e0d05efff0be85",
      "tree": "50602045f6b4e7ed30d2498bef163412839c8776",
      "parents": [
        "45bbaef0382c5468d9fac511775bd99ea7bf5b84"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 08 19:51:45 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 08 19:51:45 2022 +0100"
      },
      "message": "patch 9.0.0419: the :defer command does not check the function arguments\n\nProblem:    The :defer command does not check the function argument count and\n            types.\nSolution:   Check the function arguments when adding a deferred function.\n"
    },
    {
      "commit": "6f14da15ac900589f2f413d77898b9bff3b31ece",
      "tree": "883f0ce338a539bea95f17fec21a76d5990e6076",
      "parents": [
        "d7633114af2365e32080b61af473db347a3489c2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 07 21:30:44 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 07 21:30:44 2022 +0100"
      },
      "message": "patch 9.0.0411: only created files can be cleaned up with one call\n\nProblem:    Only created files can be cleaned up with one call.\nSolution:   Add flags to mkdir() to delete with a deferred function.\n            Expand the writefile() name to a full path to handle changing\n            directory.\n"
    },
    {
      "commit": "9667b2c888351b04751bdb43cba0d4ffc8c13ab1",
      "tree": "2fdab6d882454458af5b42159ef6f863f72b3867",
      "parents": [
        "c9c967da09d9faf5ba989c943352274fea365841"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 07 17:28:09 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 07 17:28:09 2022 +0100"
      },
      "message": "patch 9.0.0406: deferred functions not invoked when partial func exits\n\nProblem:    Deferred functions not invoked when partial func exits.\nSolution:   Create a funccall_T when calling a :def function.\n"
    },
    {
      "commit": "c9c967da09d9faf5ba989c943352274fea365841",
      "tree": "a072dd3a6d159560e012fc16615e4a849a0af8ff",
      "parents": [
        "1540d334a04d874c2aa9d26b82dbbcd4bc5a78de"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 07 16:48:46 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 07 16:48:46 2022 +0100"
      },
      "message": "patch 9.0.0405: arguments in a partial not used by a :def function\n\nProblem:    Arguments in a partial not used by a :def function.\nSolution:   Put the partial arguments on the stack.\n"
    },
    {
      "commit": "98aff658d5f97629d7c3a9fccac6c79fc9c6029d",
      "tree": "373e25478552ba5098d844e6bce825629190222a",
      "parents": [
        "ca16c60f337ed33d5dd66a6e90aaf95b619c5e47"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 06 21:02:35 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 06 21:02:35 2022 +0100"
      },
      "message": "patch 9.0.0399: using :defer in expression funcref not tested\n\nProblem:    Using :defer in expression funcref not tested.\nSolution:   Add a test.  Fix uncovered problems.\n"
    },
    {
      "commit": "ca16c60f337ed33d5dd66a6e90aaf95b619c5e47",
      "tree": "4c552c6a030970a050e9ab9aeea33fa222d717aa",
      "parents": [
        "58779858fb5a82a3233af5d4237a3cece88c10d4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 06 18:57:08 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 06 18:57:08 2022 +0100"
      },
      "message": "patch 9.0.0398: members of funccall_T are inconsistently named\n\nProblem:    Members of funccall_T are inconsistently named.\nSolution:   Use the \"fc_\" prefix for all members.\n"
    },
    {
      "commit": "58779858fb5a82a3233af5d4237a3cece88c10d4",
      "tree": "c1654eb20a1a8300e1b304263ccea655928b3401",
      "parents": [
        "2834ebdee473c838e50e60d0aa160f0e62fc8ef9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 06 18:31:14 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 06 18:31:14 2022 +0100"
      },
      "message": "patch 9.0.0397: :defer not tested with exceptions and \":qa!\"\n\nProblem:    :defer not tested with exceptions and \":qa!\".\nSolution:   Test :defer works when exceptions are thrown and when \":qa!\" is\n            used.  Invoke the deferred calls on exit.\n"
    },
    {
      "commit": "86d87256c4005c6215da5af2597fbf6f6304421f",
      "tree": "afccb6cd2b198c0c81f064e7d7de5cce316d52a6",
      "parents": [
        "ccfde4d028e891a41e3548323c3d47b06fb0b83e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 05 21:21:25 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 05 21:21:25 2022 +0100"
      },
      "message": "patch 9.0.0390: cannot use a partial with :defer\n\nProblem:    Cannot use a partial with :defer.\nSolution:   Add the partial arguments before the other arguments.  Disallow\n            using a dictionary.\n"
    },
    {
      "commit": "806a273f3c84ecd475913d901890bb1929be9a0a",
      "tree": "7970b531379736fd2497f3a1acea0c400028db81",
      "parents": [
        "c1eb131c9eb38e00e08109f50e3e5337c072b71e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 04 15:40:36 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 04 15:40:36 2022 +0100"
      },
      "message": "patch 9.0.0379: cleaning up after writefile() is a hassle\n\nProblem:    Cleaning up after writefile() is a hassle.\nSolution:   Add the \u0027D\u0027 flag to defer deleting the written file.  Very useful\n            in tests.\n"
    },
    {
      "commit": "eb5adf19d15de4dd1d148954ac5345154f0fea60",
      "tree": "454d15277cb5cad689e047e55f730c442e42fafd",
      "parents": [
        "6b085b9d7367e077ca69f4f82ba0f92cc6b6e443"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 04 13:41:37 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 04 13:41:37 2022 +0100"
      },
      "message": "patch 9.0.0377: argument assignment does not work\n\nProblem:    Argument assignment does not work.\nSolution:   Skip over \"\u003d\".\n"
    },
    {
      "commit": "6b085b9d7367e077ca69f4f82ba0f92cc6b6e443",
      "tree": "24a71b96fa92cd775faba432e659cd5a23d8ed0d",
      "parents": [
        "c8ac3a072f18d4b250e55e91f610fe517e218777"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Sep 04 12:47:21 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 04 12:47:21 2022 +0100"
      },
      "message": "patch 9.0.0376: clang warns for dead assignments\n\nProblem:    Clang warns for dead assignments.\nSolution:   Adjust the code. (Yegappan Lakshmanan, closes #11048)\n"
    },
    {
      "commit": "1d84f7608f1e41dad03b8cc7925895437775f7c0",
      "tree": "cc276825566021a35b96f93e178e5f2ac621a84b",
      "parents": [
        "06d32a0c177e4166ff0491668cd459464bc2ef45"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 03 21:35:53 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 03 21:35:53 2022 +0100"
      },
      "message": "patch 9.0.0370: cleaning up afterwards can make a function messy\n\nProblem:    Cleaning up afterwards can make a function messy.\nSolution:   Add the :defer command.\n"
    },
    {
      "commit": "2f892d8663498c21296ad6661dac1bb8372cfd10",
      "tree": "96b4bed89d8d4237fc46370fa227f086944e514f",
      "parents": [
        "75e9a6693e8d0126b5fff42203bfba9428cd19ae"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Aug 28 18:52:10 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 28 18:52:10 2022 +0100"
      },
      "message": "patch 9.0.0303: it is not easy to get information about a script\n\nProblem:    It is not easy to get information about a script.\nSolution:   Make getscriptinf() return the version.  When selecting a specific\n            script return functions and variables. (Yegappan Lakshmanan,\n            closes #10991)\n"
    },
    {
      "commit": "91c7cbfe31bbef57d5fcf7d76989fc159f73ef15",
      "tree": "95aa1ecfabd5937db15f10648d79a61f42c417e4",
      "parents": [
        "4875d6ab068f09df88d24d81de40dcd8d56e243d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 18 13:28:31 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 18 13:28:31 2022 +0100"
      },
      "message": "patch 9.0.0225: using freed memory with multiple line breaks in expression\n\nProblem:    Using freed memory with multiple line breaks in expression.\nSolution:   Free eval_tofree later.\n"
    },
    {
      "commit": "948a3894d98f5e2a6e7fc57189fe9c2a5919eebf",
      "tree": "12c30f33547c5474f5de4369907fb037b41428bb",
      "parents": [
        "e98c88c44c308edaea5994b8ad4363e65030968c"
      ],
      "author": {
        "name": "Kota Kato",
        "email": "github@kat0h.com",
        "time": "Tue Aug 16 16:09:59 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 16 16:09:59 2022 +0100"
      },
      "message": "patch 9.0.0219: cannot make a funcref with \"s:func\" in a def function\n\nProblem:    Cannot make a funcref with \"s:func\" in a def function in legacy\n            script.\nSolution:   Allow for using a lower case function name after \"s:\". (Kota Kato,\n            closes #10926)\n"
    },
    {
      "commit": "72981ac94ff7aeaa596d535448ee0bef46050acf",
      "tree": "6e832cafa120b277b81936ac9d3057b65998eebf",
      "parents": [
        "cb36c2a3cdd5610487dd830d430bf022f288328d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 29 19:50:41 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 29 19:50:41 2022 +0100"
      },
      "message": "patch 9.0.0107: condition always has the same value\n\nProblem:    Condition always has the same value.\nSolution:   Remove the condition.\n"
    },
    {
      "commit": "ee47eaceaa148e07b566ff420f9a3c2edde2fa34",
      "tree": "990dc0d8074d51970ecc83ad94a59e884687a313",
      "parents": [
        "c207fd2535717030d78f9b92839e5f2ac004cc78"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Jun 29 12:55:36 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 29 12:55:36 2022 +0100"
      },
      "message": "patch 9.0.0003: functions are global while they could be local\n\nProblem:    Functions are global while they could be local.\nSolution:   Add \"static\".  Add a few tests. (Yegappan Lakshmanan,\n            closes #10612)\n"
    },
    {
      "commit": "7d149f899d423b7bf2b90d7b11ebe3e560c462b9",
      "tree": "f487ea09b662d52ab188bc40aa14e0f84a96a1eb",
      "parents": [
        "47f1a55849a73cefe738a246798221e45448546a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jun 17 19:23:34 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jun 17 19:23:34 2022 +0100"
      },
      "message": "patch 8.2.5117: crash when calling a Lua callback from a :def function\n\nProblem:    Crash when calling a Lua callback from a :def function. (Bohdan\n            Makohin)\nSolution:   Handle FC_CFUNC in call_user_func_check(). (closes #10587)\n"
    },
    {
      "commit": "5a01caa90428a5f87600528d68529383c0b2f78c",
      "tree": "7c8e52c725b449c319eee9d96b1b33525790e76a",
      "parents": [
        "93c1573dd284dc9cf5ed9265a0143aaf520d2920"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 21 18:56:58 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 21 18:56:58 2022 +0100"
      },
      "message": "patch 8.2.4992: compiler warning for possibly uninitialized variable\n\nProblem:    Compiler warning for possibly uninitialized variable. (Tony\n            Mechelynck)\nSolution:   Initialize variable in the caller instead of in the function.\n"
    },
    {
      "commit": "1a56ea8381b79c4e7697b6a05451dde5940228ea",
      "tree": "af9de0e26d2e29715939b707d4bee4d5c91586fb",
      "parents": [
        "f79d9dd43f6fe05711d7e2616ab4b8bde2ccb089"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 21 16:28:42 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 21 16:28:42 2022 +0100"
      },
      "message": "patch 8.2.4990: memory leak when :defcompile fails\n\nProblem:    Memory leak when :defcompile fails.\nSolution:   Free fname when returning early.\n"
    },
    {
      "commit": "f79d9dd43f6fe05711d7e2616ab4b8bde2ccb089",
      "tree": "cf41b3c62e71e9fca5ddc61636465ab5e05283a9",
      "parents": [
        "2d8ed0203aedd5f6c22efa99394a3677c17c7a7a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 21 15:39:02 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 21 15:39:02 2022 +0100"
      },
      "message": "patch 8.2.4989: cannot specify a function name for :defcompile\n\nProblem:    Cannot specify a function name for :defcompile.\nSolution:   Implement a function name argument for :defcompile.\n"
    },
    {
      "commit": "d881d1598467d88808bafd2fa86982ebbca7dcc1",
      "tree": "89551fd87f4bfa7692178faf927a5429a3adc00f",
      "parents": [
        "b7a701255578b38896631ba20556b856e8888069"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 13 13:50:36 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 13 13:50:36 2022 +0100"
      },
      "message": "patch 8.2.4948: cannot use Perl heredoc in nested :def function\n\nProblem:    Cannot use Perl heredoc in nested :def function. (Virginia\n            Senioria)\nSolution:   Only concatenate heredoc lines when not in a nested function.\n            (closes #10415)\n"
    },
    {
      "commit": "6ed545e79735f23ff8e650bc2f0967e5a0baedc9",
      "tree": "1c77e4b188c34d68e91c5c93e62c668ce51ffc2f",
      "parents": [
        "921bde88804663a7cb825d7f7e8a5d8ae6b58650"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 09 20:09:23 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 09 20:09:23 2022 +0100"
      },
      "message": "patch 8.2.4928: various white space and cosmetic mistakes\n\nProblem:    Various white space and cosmetic mistakes.\nSolution:   Change spaces to tabs, improve comments.\n"
    },
    {
      "commit": "521bf32bb4f86676ce3617d25309770f1440ba79",
      "tree": "6e574e5e70b43787f9b20d7dd44e947297889a8d",
      "parents": [
        "9b334d5912607f09912bfd19aa95355a1efc2761"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 06 15:47:07 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 06 15:47:07 2022 +0100"
      },
      "message": "patch 8.2.4888: line number of lambda ignores line continuation\n\nProblem:    Line number of lambda ignores line continuation.\nSolution:   Use the line number of where the arguments are. Avoid outputting\n            \"...\" twice. (closes #10364)\n"
    },
    {
      "commit": "a929c922b1cb7c84ad1b5d1d0fc9a4f7c68ab8e0",
      "tree": "c5f21ae7e809da70c6d5f254ed5f6cd67bfa833c",
      "parents": [
        "d0a20c9d111da75febb60ffee2e15f727ab6a5ad"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 18 15:21:17 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 18 15:21:17 2022 +0100"
      },
      "message": "patch 8.2.4782: accessing freed memory\n\nProblem:    Accessing freed memory.\nSolution:   Clear evalarg after checking for trailing characters.\n            (issue #10218)\n"
    },
    {
      "commit": "efbfa867a146fcd93fdec2435597aa4ae7f1325c",
      "tree": "0b8b54107db3708bfe5b5c0e572371d476f3c4ff",
      "parents": [
        "68aaff4697bab4a278436e6f7ae042262223e51c"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Apr 17 12:47:40 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 17 12:47:40 2022 +0100"
      },
      "message": "patch 8.2.4770: cannot easily mix expression and heredoc\n\nProblem:    Cannot easily mix expression and heredoc.\nSolution:   Support  in heredoc. (Yegappan Lakshmanan, closes #10138)\n"
    },
    {
      "commit": "7c7e19cf50d76568e2637ad66b095044a41c6a82",
      "tree": "39534337197e3f8f2d713910050a977877effe33",
      "parents": [
        "5e1792270a072a96157e5d5e1d6a97414e26d0bf"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Apr 09 11:09:07 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 09 11:09:07 2022 +0100"
      },
      "message": "patch 8.2.4716: memory allocation failure not tested when defining a function\n\nProblem:    Memory allocation failure not tested when defining a function.\nSolution:   Add a test. (Yegappan Lakshmanan, closes #10127)\n"
    },
    {
      "commit": "7a411a306f90339d8686e42ac16e1ae4fc7533c5",
      "tree": "def2607a7145867c305c4d55baf955bc21649bde",
      "parents": [
        "15f74fab653a784548d5d966644926b47ba2cfa7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 04 14:58:06 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 04 14:58:06 2022 +0100"
      },
      "message": "patch 8.2.4682: Vim9: can use :unlockvar for const variable\n\nProblem:    Vim9: can use :unlockvar for const variable. (Ernie Rael)\nSolution:   Check whether the variable is a const.\n"
    },
    {
      "commit": "96e08e028cbcda23dccf83de6b71b3c6bf1f9d4a",
      "tree": "fbc716dcf37e97cd261d658282d48a5ab67335f2",
      "parents": [
        "3a6f952cc87065a4cf1f6502b2054ba99fdf45ed"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 31 21:40:33 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 31 21:40:33 2022 +0100"
      },
      "message": "patch 8.2.4659: invalid memory access when using printable function name\n\nProblem:    Invalid memory access when using printable function name.\nSolution:   Adjust copied name length.\n"
    },
    {
      "commit": "a6c18d38ca2df0a92403f2265a480d9dba08290f",
      "tree": "ac3af2c88f7576100428d53d3b9aae6bbf993f8c",
      "parents": [
        "ccbfd4883f0385a1d84cc87785ddcc86185b4ad9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 31 20:02:56 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 31 20:02:56 2022 +0100"
      },
      "message": "patch 8.2.4657: errors for functions are sometimes hard to read\n\nProblem:    Errors for functions are sometimes hard to read.\nSolution:   Use printable_func_name() in more places.\n"
    }
  ],
  "next": "c0ceeeb839b8c6bebd3a2abd1c07d40ec3c6edca"
}
