)]}'
{
  "log": [
    {
      "commit": "de3295dd0c68a8d7540a751a99ee056fd5b9a7a4",
      "tree": "4028cf0eca80889cfaccccf7af4c392ba6b4db88",
      "parents": [
        "ae3cfa47d3dcee75061db598eb19879693b2393a"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Oct 15 09:44:50 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Oct 15 09:44:50 2023 +0200"
      },
      "message": "patch 9.0.2027: Vim9: no support for bitwise operators in lambda funcs\n\nProblem:  Vim9: no support for bitwise operators in lambda funcs\nSolution: move \"evaluate\" assignment a bit up in order to decide\n          to perform bitwise operations\n\ncloses: #13342\ncloses: #13345\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "0f058d13206665bad37c7d42834cfa0075f50239",
      "tree": "75929a5f6eb9fc5d4b3fa5008d701569e2a5dbf6",
      "parents": [
        "2bbd0d30eebdea66c0da3895e83d999ed6ad83fb"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Sat Oct 14 11:25:04 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 14 11:25:04 2023 +0200"
      },
      "message": "patch 9.0.2020: Vim9: islocked() needs more work\n\nProblem:  Vim9: islocked() needs more work\nSolution: rework islocked() and remove sync_root\n          from get_lval()\n\ncloses: #13329\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "29bb67f1beefc7fd393dbfd9ee77d92f1db3a3c0",
      "tree": "edaeb40abcb04a2d89e2886cd583ef497f2ad469",
      "parents": [
        "69fb5afb3bc9da24c2fb0eafb0027ba9c6502fc2"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Oct 14 11:18:50 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 14 11:18:50 2023 +0200"
      },
      "message": "patch 9.0.2019: Vim9: no support for funcrefs\n\nProblem:  Vim9: no support for funcrefs\nSolution: Add support for object/class funcref members\n\ncloses: #11981 #12417 #12960 #12324 #13333\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "4c8da025ef8140168b7a09d9fe922ce4bb40f19d",
      "tree": "73571eb4b3ba86ed7a2f00c9897796bfc92111d0",
      "parents": [
        "c97b3febc82c1ccacf5f328ed0bd81c8b850e97d"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Wed Oct 11 21:35:11 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 11 21:38:24 2023 +0200"
      },
      "message": "patch 9.0.2015: Vim9: does not handle islocked() from a method correctly\n\nProblem:  Vim9: does not handle islocked() from a method correctly\nSolution: Handle islocked() builtin from a method.\n\n- Setup `lval_root` from `f_islocked()`.\n- Add function `fill_exec_lval_root()` to get info about executing method.\n- `sync_root` added in get_lval to handle method member access.\n- Conservative approach to reference counting.\n\ncloses: #13309\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "f8da32461969a657ce9f132f35ddbec4068d3296",
      "tree": "1da1669c0c5659aa4358c6b77d385e582ae9b3ba",
      "parents": [
        "4a82bdfaa8022402b1ca0f0000c94c47a13f1014"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Wed Oct 11 21:22:12 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 11 21:22:12 2023 +0200"
      },
      "message": "patch 9.0.2012: Vim9: error message can be more accurate\n\nProblem:  Vim9: error message can be more accurate\nSolution: Fix the error messages\n\nFix message for some single use error messages.\n\ncloses: #13312\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "9771b2a67f825bdc6e5c615141d22c665952dc86",
      "tree": "3197766895366d392c92819ddf7e811c5325c317",
      "parents": [
        "1087b8c29ab521106c5b6cc85d5b38244f0d9c1d"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Sat Oct 07 22:05:40 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 07 22:10:26 2023 +0200"
      },
      "message": "patch 9.0.2001: Vim9: segfault with islocked()\n\nProblem:  Vim9: segfault with islocked()\nSolution: Check that the lval pointer is not null for objects and\n          class variables\n\ncloses: #13295\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "e6c9aa5e6a88d539a412a9b5526f41ea101aa185",
      "tree": "2ba9d1d12205cbe879b917b1e78b3df7bc43f4f9",
      "parents": [
        "85f4521808dd9a587c00f9a2927e84217721cfca"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Fri Oct 06 19:55:52 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 06 19:55:52 2023 +0200"
      },
      "message": "patch 9.0.1999: Vim9: some error messages can be improved\n\nProblem:  Vim9: some error messages can be improved\nSolution: Mention the defining class for variable access error message\n\ncloses: #13272\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "a991ce9c083bb8c02b1b1ec34ed35728197050f3",
      "tree": "86b81d3c944a52d370959307b44136356cd27976",
      "parents": [
        "ac9c6d5c786a016ca1dce297d167a5a963881f7e"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Fri Oct 06 19:16:36 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 06 19:18:12 2023 +0200"
      },
      "message": "patch 9.0.1995: Invalid memory access with empty \u0027foldexpr\u0027\n\nProblem:  Invalid memory access when \u0027foldexpr\u0027 returns empty string.\nSolution: Check for NUL.\n\ncloses: #13293\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "b5a0719cb7abf51b0540df527cb9738a3ccf0d37",
      "tree": "5fa50a382935836aaede388f18fa751231d67d8d",
      "parents": [
        "b6d01f131c6ad44451b63ff437fa04169173f1c5"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Oct 05 20:14:43 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 05 20:16:06 2023 +0200"
      },
      "message": "patch 9.0.1986: Vim9: accepting type-annotations\n\nProblem:  Vim9: accepting type-annotations\nSolution: Reject type annotations outside of declarations.\n\ncloses: #13267\ncloses: #13283\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "64885645e76b301a6c34fe762c4e29c7a0f63881",
      "tree": "2fe2d6325cbbdc1812da80226784060485afd939",
      "parents": [
        "0583491277dea9d14e000051c26405b90d839072"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Wed Oct 04 20:16:22 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 04 20:16:22 2023 +0200"
      },
      "message": "patch 9.0.1982: vim9: clean up from v9.0.1955\n\nProblem:  vim9: clean up from v9.0.1955\nSolution: Fix a few remaining issues, improve error message\n\n- Use `cl_exec`, the executing class, to check permissions in `get_lval()`.\n- Handle lockvar of script variable from class.\n- Add \u0027in class \"Xxx\"\u0027 to e_cannot_access_private_variable_str.\n\ncloses: #13222\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "ee865f37acab6cac2cee6a171d60e1b365f852b0",
      "tree": "37522d42aa745a1b355a71efc979651e7500f9b2",
      "parents": [
        "112431f21762bdcb3ee4ce2d7d8f91da07f3bf71"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Fri Sep 29 19:53:55 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Sep 29 19:53:55 2023 +0200"
      },
      "message": "patch 9.0.1955: Vim9: lockvar issues with objects/classes\n\nProblem:  Vim9: lockvar issues with objects/classes\nSolution: fix `get_lhs()` object/class access and avoid `SEGV`,\n          make error messages more accurate.\n\n- `get_lval()` detects/returns object/class access\n- `compile_lock_unlock()` generate code for bare static and obj_arg access\n- `do_lock_var()` check lval for `ll_object`/`ll_class` and fail if so.\n\nDetails:\n- Add `ll_object`/`ll_class`/`ll_oi` to `lval_T`.\n- Add `lockunlock_T` to `isn_T` for `is_arg` to specify handling of `lval_root` in `get_lval()`.\n- In `get_lval()`, fill in `ll_object`/`ll_class`/`ll_oi` as needed; when no `[idx] or .key`, check lval_root on the way out.\n- In `do_lock_var()` check for `ll_object`/`ll_class`; also bullet proof ll_dict case\n  and give `Dictionay required` if problem. (not needed to avoid lockvar crash anymore)\n- In `compile_lock_unlock()` compile for the class variable and func arg cases.\n\ncloses: #13174\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "2dede3dbfa3cb52f464f942d46d3ec0f66e3e354",
      "tree": "95218eeb382aa0e51be357af311157279a53b1bd",
      "parents": [
        "5277cfaf8afe847b7d4dcde6057fbecb001ab64e"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Sep 27 19:02:01 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Sep 27 19:02:01 2023 +0200"
      },
      "message": "patch 9.0.1945: Vim9: missing support for ro-vars in interface\n\nProblem:  Vim9: missing support for ro-vars in interface\nSolution: Support only read-only object variables in an interface,\n          add additional checks when parsing class definitions.\n\ncloses: #13183\ncloess: #13184\ncloess: #13185.\ncloses: #13188\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "7fe8f43f49f4fa6f024d0e0ea76d3df5b62a0879",
      "tree": "0d1c177b3717a51940236bba81a9654017eae317",
      "parents": [
        "46bdae036ac4121e305fc3ed4ef3f9fc928dcb25"
      ],
      "author": {
        "name": "RestorerZ",
        "email": "restorer@mail2k.ru",
        "time": "Sun Sep 24 23:21:24 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Sep 24 23:21:24 2023 +0200"
      },
      "message": "patch 9.0.1935: Vim9: not consistent error messages\n\nProblem:  Vim9: not consistent error messages\nSolution: Make error messages more consistent. Use \"variable\" for\n          (object/class) member\n\ncloses: #13155\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: RestorerZ \u003crestorer@mail2k.ru\u003e\n"
    },
    {
      "commit": "696270bcae0c14029030f14a3f3ca2763a2b39de",
      "tree": "08f1691a9d0afc7a4a98884dc7a6220a59815075",
      "parents": [
        "02c51b1dd8e8b96e969ad7e408536fa208d90ac8"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Thu Sep 21 16:42:28 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Sep 21 16:42:28 2023 +0200"
      },
      "message": "patch 9.0.1926: Vim9: not enough info in error message\n\nProblem:  Vim9: not enough info in error message\nSolution: Add class name, change member to variable, quote names\n\ncloses: #13136\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "98e68c07ce229148c994a42ead9f010b0d0a1be4",
      "tree": "d0b580a561988023809a7b163fbf02055673e119",
      "parents": [
        "03cd697d635f1b0e7ffe21cf8244a8fb755f2ddb"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Wed Sep 20 20:13:06 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Sep 20 20:13:06 2023 +0200"
      },
      "message": "patch 9.0.1920: Vim9: cannot write public var in nested object\n\nProblem:  Vim9: cannot write public var in nested object\nSolution: Write variable in nested read-only object reference.\n          Also test write fails.\n\ncloses: #13130\ncloses: #13131\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "1db151436541a3e64cdd5e3d9eb3ace1ce1e1ad0",
      "tree": "04a55e05000bc0b00366825c1088d3dd8481dbfe",
      "parents": [
        "2ce070c27acd12ccc614afa4cecf4970a645a4af"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Sep 19 20:34:05 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Sep 19 20:36:02 2023 +0200"
      },
      "message": "patch 9.0.1914: Vim9: few issues when accessing object members\n\nProblem:  Vim9: few issues when accessing object members\nSolution: When calling an object method, check for null object.\n          Accessing a Dict object member doesn\u0027t work.\n\ncloses: #13119\ncloses: #13123\ncloses: #13124\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "00cd18222ee1551c65228e9556c158624507fc7a",
      "tree": "2686d05c81b58786e4f0c5b7f284f9e6d9158f8b",
      "parents": [
        "d25021cf036c63d539f845a1ee05b03ea21d61ff"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Sep 18 19:56:49 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Sep 18 19:56:49 2023 +0200"
      },
      "message": "patch 9.0.1909: Vim9: problem calling class method from other class\n\nProblem:  Vim9: problem calling class method from other class\nSolution: Fix this problem, fix readonly object access, update error\n          messages.\n\nCalling a class method from another method without the class name prefix\ndoesn\u0027t work properly.\n\nA readonly object variable is modifiable outside the class using a\nnested object assignment.\n\nRemove the unused E1338 error message.\n\nUpdate error messages.\n\ncloses: #13116\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "c30a90d9b2c029f794cea502f6b824f71e4876dd",
      "tree": "53c789bae67beb6fe099686fcc6894b2c6fdb7b8",
      "parents": [
        "35928ee8f80ea721e92bb856c8ecde2cced46bb9"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Sep 15 20:14:55 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Sep 15 20:14:55 2023 +0200"
      },
      "message": "patch 9.0.1898: Vim9: restrict access to static vars\n\nProblem:  Vim9: restrict access to static vars and methods\nSolution: Class members are accesible only from the class where they are\n          defined.\n\nBased on the #13004 discussion, the following changes are made:\n\n    1) Static variables and methods are accessible only using the class\n       name and inside the class where they are defined.\n    2) Static variables and methods can be used without the class name in\n       the class where they are defined.\n    3) Static variables of a super class are not copied to the sub class.\n    4) A sub class can declare a class variable with the same name as the\n       super class.\n    5) When a method or member is found during compilation, use more\n       specific error messages.\n\nThis aligns the Vim9 class variable/method implementation with the Dart\nimplementation.\n\nAlso while at it, ignore duplicate class and object methods.\n\nThe access level of an object method can however be changed in a\nsubclass.\n\nFor the tests, use the new CheckSourceFailure() function instead of the\nCheckScriptFailure() function in the tests.\n\ncloses: #13086\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "f36bbcd402c6ee5a27bcab3b20b6362ab93b8898",
      "tree": "1ab46f6dbc574548c8a9dea4ca6a661b36475899",
      "parents": [
        "066103307534f81de08a092aac3a15e864a5a25f"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Sep 10 18:19:06 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Sep 10 18:19:06 2023 +0200"
      },
      "message": "patch 9.0.1890: Vim9: lookup code for class/object repaeated\n\nProblem:  Vim9: lookup code for class/object repaeated\nSolution: Refactor and make use of lookup functions\n\ncloses: #13067\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "86eda0780590ea8cac49e2aa3bd50245329d3579",
      "tree": "e462bca0680d371251f58d035a91c71519ce0d52",
      "parents": [
        "59adcb4c203371258c72e76011da93eac8540317"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Tue Sep 05 07:33:48 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Sep 05 07:33:48 2023 +0200"
      },
      "message": "patch 9.0.1869: Coverity warns about unitialized var\n\nProblem:  Coverity warns about unitialized var\nSolution: initialize it\n\ncloses: #13029\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "18143d3111b2122c7a94ca51085a60b3073cb139",
      "tree": "c882f6d5b2f9e8f5643ab6c23a8555d0c1cc3373",
      "parents": [
        "dccc29c228f8336ef7dd069a447886639af4458e"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Mon Sep 04 22:30:41 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Sep 04 22:30:41 2023 +0200"
      },
      "message": "patch 9.0.1867: Vim9: access to interface statics possible\n\nProblem:  Vim9: access to interface statics possible\nSolution: Prevent direct access to interface statics\n\ncloses: #13007\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "544be0d893e68c494aed09232d5bee4ca8b74619",
      "tree": "572489199caca04b829c88bc8faf764c8c0a2184",
      "parents": [
        "623ba31821a41acee7e948794e84867680b97885"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Sep 04 22:14:28 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Sep 04 22:14:28 2023 +0200"
      },
      "message": "patch 9.0.1865: Vim9: garbage collection may cause crash\n\nProblem:  Vim9: garbage collection may cause crash\nSolution: validate that class members typeval is not null\n\ncloses: #13028\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "e651e110c17656a263dd017b14c85b332163a58d",
      "tree": "5aed78b4cba519728d28960297d9390944e02d1c",
      "parents": [
        "233f956bd43279db1fb4d017acb4e56a1504addf"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Sep 04 07:51:01 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Sep 04 07:51:01 2023 +0200"
      },
      "message": "patch 9.0.1862: Vim9 Garbage Collection issues\n\nProblem:  Vim9 Garbage Collection issues\nSolution: Class members are garbage collected early leading to\n          use-after-free problems.  Handle the garbage\n          collection of classes properly.\n\ncloses: #13019\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "c5d2744c045f9ad058cbc799f2434d90a6d83516",
      "tree": "76990a51b671ae6ab1973fe1f22d7109befc8b40",
      "parents": [
        "56bafd7a6a79203b86f7165a7bbac5730c170f64"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Sat Aug 19 13:02:35 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 13:04:53 2023 +0200"
      },
      "message": "patch 9.0.1741: No type checking in interfaces\n\nProblem: No type checking in interfaces\nSolution: Implement member type check in vim9 interfaces\n\nMost of the code is a small refactoring to allow the use of a where_T\nfor signaling the type mismatch, the type checking itself is pretty\nsimple.\n\nImprove where_T error reports\n\nLet the caller explicitly define the kind of location it\u0027s referring to\nand free the WT_ARGUMENT enum from its catch-all role.\n\nImplement type checking for interface methods\n\nFollows closely the logic used for type-checking the members.\n\ncloses: #12844\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: LemonBoy \u003cthatlemon@gmail.com\u003e\n"
    },
    {
      "commit": "ad0c442f1fcc6fe9c433777ee3e5b9e6addc6d69",
      "tree": "60279c75b0d60c44f602a980717db10239fcbbe4",
      "parents": [
        "4f389e7c0fe7dfeccfa512a72fa36f9028d57159"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Aug 17 22:15:47 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 22:15:47 2023 +0200"
      },
      "message": "patch 9.0.1723: Fix regression in {func} argument of reduce()\n\nProblem: Fix regression in {func} argument of reduce()\nSolution: pass function name as string again\n\nBefore patch 9.0.0548, passing a string as {func} argument of reduce()\nis treated as a function name, but after patch 9.0.0548 it is treated as\nan expression instead, which is useless as reduce() doesn\u0027t set any v:\nvariables. This PR restores the behavior of {func} before that patch.\n\nAlso correct an emsg() call, as e_string_list_or_blob_required doesn\u0027t\ncontain format specifiers.\n\ncloses: #12824\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "19dfa276c37dcf657922c6f9b48cf2954191e8b6",
      "tree": "efa66453203e8ef4c31302fa59f18cad14714b62",
      "parents": [
        "166cd7b801ebe4aa042a9bbd6007d1951800aaa9"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Jun 15 10:56:41 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 15 10:56:41 2023 +0100"
      },
      "message": "patch 9.0.1633: duplicate code for converting float to string\n\nProblem:    Duplicate code for converting float to string.\nSolution:   Use tv_get_string(). (closes #12521)\n"
    },
    {
      "commit": "8509014adda188ee8bdf6a2e123fbf15a91b29d2",
      "tree": "122f7ac29f4939cf2b87916e72b9fcb92475f08c",
      "parents": [
        "eb43b7f0531bd13d15580b5c262a25d6a52a0823"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 01 19:27:08 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 01 19:27:08 2023 +0100"
      },
      "message": "patch 9.0.1597: cursor ends up below the window after a put\n\nProblem:    Cursor ends up below the window after a put.\nSolution:   Mark w_crow and w_botline invalid when changing the cursor line.\n            (closes #12465)\n"
    },
    {
      "commit": "2bd6a09691fc71974ca7ab5973f8e08fdd2a889a",
      "tree": "1c62652381b0c53ae4a230b544491fc93e7c0dd3",
      "parents": [
        "d49f646bf56b29d44bbb16e79bc877b59aab38ac"
      ],
      "author": {
        "name": "h-east",
        "email": "h.east.727@gmail.com",
        "time": "Fri May 19 19:01:17 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 19 19:01:17 2023 +0100"
      },
      "message": "patch 9.0.1569: cannot use \"this.member\" in lambda in class method\n\nProblem:    Cannot use \"this.member\" in lambda in class method.\nSolution:   Adjust check for reserved keyword. (Hirohito Higashi,\n            closes #12416, closes #12076, closes #12336)\n"
    },
    {
      "commit": "f2588b6fc90ba85b333ee8f747e8d1ebbc7e6300",
      "tree": "142e00651437bdb74363840e61ac0bb7865dcfa3",
      "parents": [
        "53f5e51628b56ef9171671cd6e9970374036a084"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Fri May 05 17:22:35 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 05 17:22:35 2023 +0100"
      },
      "message": "patch 9.0.1508: catch does not work when lines are joined with a newline\n\nProblem:    Catch does not work when lines are joined with a newline.\nSolution:   Set \"nextcmd\" appropriately. (closes #12348)\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": "b7f6f93475a3ad5c590a09a2577fd51590bea9e1",
      "tree": "f910fd7a0482e33ccd0cd1f286c2c9b1b745d9b9",
      "parents": [
        "aa7f25ebf16b8be99239af1134b441e3da93060a"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Apr 13 22:12:50 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 13 22:12:50 2023 +0100"
      },
      "message": "patch 9.0.1452: code using EVAL_CONSTANT is dead, it is never set\n\nProblem:    Code using EVAL_CONSTANT is dead, it is never set.\nSolution:   Remove EVAL_CONSTANT. (closes #12252)\n"
    },
    {
      "commit": "c481ad38f05c9f759ca7fd01a54c78acad794e85",
      "tree": "4264187f2efa8ccc8b0e31320a5cfa850ad04247",
      "parents": [
        "5145c9a829cd43cb9e7962b181bf99226eb3a53f"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sat Mar 11 16:18:51 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 11 16:18:51 2023 +0000"
      },
      "message": "patch 9.0.1401: condition is always true\n\nProblem:    Condition is always true.\nSolution:   Remove the condition. (closes #12139)\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": "d8742476d11e75e3b733f21d9aeac1cbd2a02c6f",
      "tree": "ae90655413daae3c88c7d2c9c9369b2c58f202f6",
      "parents": [
        "5fb78c3fa5c996c08a65431d698bd2c251eef5c7"
      ],
      "author": {
        "name": "\u003d?UTF-8?q?Ola\u003d20S\u003dC3\u003dB6der?\u003d",
        "email": "rolfkopman@gmail.com",
        "time": "Sun Mar 05 13:12:32 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 05 13:12:32 2023 +0000"
      },
      "message": "patch 9.0.1381: ACCESS_ names have a conflict with on some systems\n\nProblem:    ACCESS_ names have a conflict with on some systems.\nSolution:   Rename by prepending VIM_. (Ola Söder, closes #12105)\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": "ce93d162da8de2419c15b63286e2f72a8fe3bf2d",
      "tree": "c71709142faa5d59491146cd89733016bc93217a",
      "parents": [
        "b8bebd0cd78679162228ee08265c9a5b3a409e1c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 30 21:12:34 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 30 21:12:34 2023 +0000"
      },
      "message": "patch 9.0.1266: error for space before \": type\" is inconsistent\n\nProblem:    Error for space before \": type\" is inconsistent.\nSolution:   Give E1059 in more places. (closes #11868)\n"
    },
    {
      "commit": "b149d2279673aa89ab5e35958d05cc4bcc70f82a",
      "tree": "f659703345e44914d5979341aa7f3180efcb25e7",
      "parents": [
        "5c8771bc5a2be123ab8e6325fa60ed524e8efb09"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 24 13:03:37 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 24 13:03:37 2023 +0000"
      },
      "message": "patch 9.0.1239: cannot have a line break before an object member access\n\nProblem:    Cannot have a line break before an object member access.\nSolution:   Check for \".\" in next line. (closes #11864)\n"
    },
    {
      "commit": "bcbfaf32e02a92a6d6d35fc409b1b16aa931e3fa",
      "tree": "59c2e13f7a33127f63d31539867c7da6fc305aeb",
      "parents": [
        "6aa0937fb88001a5ea18e732aad4c625e9b2baeb"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 11 19:11:15 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 11 19:11:15 2023 +0000"
      },
      "message": "patch 9.0.1180: compiler warnings without the +job feature\n\nProblem:    Compiler warnings without the +job feature.\nSolution:   Adjust #ifdefs. (John Marriott)\n"
    },
    {
      "commit": "ea125393af01ecaf75cee8e085a57f8143f3ae3e",
      "tree": "bd2698bc6948c8c698d7557b605fc7f002c51f68",
      "parents": [
        "9a9432d3a223f7fbd902a0346030422ae0a97f0e"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Jan 11 11:46:17 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 11 11:46:17 2023 +0000"
      },
      "message": "patch 9.0.1175: the set_ref_in_item() function is too long\n\nProblem:    The set_ref_in_item() function is too long.\nSolution:   Use a separate function for more complicated types. (Yegappan\n            Lakshmanan, closes #11802)\n"
    },
    {
      "commit": "94674f2223aafeaa4690f25e12f3ebe07814c5ba",
      "tree": "ec39a32dd6513f68e6f524c4272424a334403def",
      "parents": [
        "5bcd29b84e4dd6435177f37a544ecbf8df02412c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 06 18:42:20 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 06 18:42:20 2023 +0000"
      },
      "message": "patch 9.0.1152: class \"implements\" argument not implemented\n\nProblem:    Class \"implements\" argument not implemented.\nSolution:   Implement \"implements\" argument.  Add basic checks for when a\n            class implements an interface.\n"
    },
    {
      "commit": "cf760d50dceb46bd583321c210b88b92360eb959",
      "tree": "83c8681eebf2582148de2c4e98fc022a4a5b7f0f",
      "parents": [
        "2468add0b88849997e6349e7a0b997be133c022d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 05 13:16:04 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 05 13:16:04 2023 +0000"
      },
      "message": "patch 9.0.1149: class members may be garbage collected\n\nProblem:    Class members may be garbage collected.\nSolution:   Mark class members as being in use.\n"
    },
    {
      "commit": "3ac1d97a1d9353490493d30088256360435f7731",
      "tree": "abb98762b33578fd248937ad21d1099e19a3e081",
      "parents": [
        "c32949b0779106ed5710ae3bffc5053e49083ab4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 04 17:17:54 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 04 17:17:54 2023 +0000"
      },
      "message": "patch 9.0.1145: invalid memory access with recursive substitute expression\n\nProblem:    Invalid memory access with recursive substitute expression.\nSolution:   Check the return value of vim_regsub().\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": "34820944ed101e1fbad16d552308f1486e715d27",
      "tree": "06520b05a8e83a392d72fd9d9e1b110c304dac69",
      "parents": [
        "afa3f1cc7258d34c32a299a3cc6aece89f67fb47"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 19 20:28:38 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 19 20:28:38 2022 +0000"
      },
      "message": "patch 9.0.1081: using \"-\u003e\" with split lines does not always work\n\nProblem:    Using \"-\u003e\" with split lines does not always work.\nSolution:   Avoid trying to get another line. (closes #11723)\n"
    },
    {
      "commit": "d505d178858434e1afef0363a9fce4bcb1bc3d06",
      "tree": "358c5f600112605517bb4b92ab155ce2e55e7123",
      "parents": [
        "731d00770d9006e7dab6a66e2ea86603ed5ef212"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 18 21:42:55 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 18 21:42:55 2022 +0000"
      },
      "message": "patch 9.0.1074: class members are not supported yet\n\nProblem:    Class members are not supported yet.\nSolution:   Add initial support for class members.\n"
    },
    {
      "commit": "3d473ee1a6aed7cb9eae458bbd8d42dffdc754f9",
      "tree": "787ae08f91baa1ef09a13c88adf209b7486e892b",
      "parents": [
        "f94178db8d7324099b1bf916a0dff022c08abdff"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 14 20:59:32 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 14 20:59:32 2022 +0000"
      },
      "message": "patch 9.0.1060: private and public object members are not implemented yet\n\nproblem:    Private and public object members are not implemented yet.\nSolution:   Implement private and public object members.\n"
    },
    {
      "commit": "f94178db8d7324099b1bf916a0dff022c08abdff",
      "tree": "5cb00a1921db58029a90aaa52f59ea4bfaf65bab",
      "parents": [
        "91c9d6d772aaea9d8a8be6c6de0e9defe649f322"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 14 17:50:00 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 14 17:50:00 2022 +0000"
      },
      "message": "patch 9.0.1059: build failure with some compilers\n\nProblem:    Build failure with some compilers that can\u0027t handle a\n            declaration directly after a \"case\" statement.\nSolution:   Add a block to put the declarations in.\n"
    },
    {
      "commit": "91c9d6d772aaea9d8a8be6c6de0e9defe649f322",
      "tree": "b886054f9314bc33d60b05a3329bda594b2c851d",
      "parents": [
        "70ef3f546b6ef83e463e91b7e388d9c68ad58894"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 14 17:30:37 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 14 17:30:37 2022 +0000"
      },
      "message": "patch 9.0.1058: string value of class and object do not have information\n\nProblem:    String value of class and object do not have useful information.\nSolution:   Add the class name and for the object the member values.\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": "d28d7b94f5a76a817585c115dbf6fecac9b0b4cd",
      "tree": "f242d0691b03e865d974c396ecc343319f4f371c",
      "parents": [
        "e5eae82bb7199bd71c6216269e78c69e9a793c8f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 08 20:42:00 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 08 20:42:00 2022 +0000"
      },
      "message": "patch 9.0.1035: object members are not being marked as used\n\nProblem:    Object members are not being marked as used, garbage collection\n            may free them.\nSolution:   Mark object members as used.  Fix reference counting.\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": "84497cd06f06516f6ce727ea00c47792ce16dc70",
      "tree": "5cba204eafbd2506cc306d610f646f23d65a2d9b",
      "parents": [
        "f86490ed4fdab213a28f667abd055c023a73d645"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Nov 28 20:34:52 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Nov 28 20:34:52 2022 +0000"
      },
      "message": "patch 9.0.0967: leaking memory from autocmd windows\n\nProblem:    Leaking memory from autocmd windows.\nSolution:   Free window when auc_win is not NULL.\n"
    },
    {
      "commit": "e76062c078debed0df818f70e4db14ad7a7cb53a",
      "tree": "e43b3b076fdea909c460219e896237a8924ccb6b",
      "parents": [
        "74a694dbe20bb7dea4e06f474cf62e20f9c92f1d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Nov 28 18:51:43 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Nov 28 18:51:43 2022 +0000"
      },
      "message": "patch 9.0.0965: using one window for executing autocommands is insufficient\n\nProblem:    Using one window for executing autocommands is insufficient.\nSolution:   Use up to five windows for executing autocommands.\n"
    },
    {
      "commit": "88456cd3c49a3dd1fda17cf350daa9b8216b1aa6",
      "tree": "bd241035e3d905b74667faca9f75e48c9c9c310d",
      "parents": [
        "d13166e788fcaef59ec65c20b46ca4be16625669"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Nov 18 22:14:09 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Nov 18 22:14:09 2022 +0000"
      },
      "message": "patch 9.0.0904: various comment and indent flaws\n\nProblem:    Various comment and indent flaws.\nSolution:   Improve comments and indenting.\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": "cdef1cefa2a440911c727558562f83ed9b00e16b",
      "tree": "af1594f84e5951aa45d9f4abad902a616bcd6a1d",
      "parents": [
        "43625762a9751cc6e6e4d8f54fbc8b82d98fb20d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Oct 20 14:17:18 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Oct 20 14:17:18 2022 +0100"
      },
      "message": "patch 9.0.0804: crash when trying to divide a number by -1\n\nProblem:    Crash when trying to divice the largest negative number by -1.\nSolution:   Handle this case specifically.\n"
    },
    {
      "commit": "79f234499b6692cc16970b7455bc9b002242632f",
      "tree": "fdf04b2e144fd6c2106f20f50eaacc2c06ed19bb",
      "parents": [
        "084f2620ec7d08d6043de30436197c002fffe3ec"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Oct 10 12:42:57 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Oct 10 12:42:57 2022 +0100"
      },
      "message": "patch 9.0.0712: wrong column when calling setcursorcharpos() with zero lnum\n\nProblem:    Wrong column when calling setcursorcharpos() with zero lnum.\nSolution:   Set the line number before calling buf_charidx_to_byteidx().\n            (closes #11329)\n"
    },
    {
      "commit": "bdc09a18fca32715687d9911a431da69186528cc",
      "tree": "9d27853365bffdc04e51cfe7fc6cb75dafc8a0b0",
      "parents": [
        "cf3d0eaf47a56a52b355d8faf4e59685396f9c05"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 07 14:31:45 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 07 14:31:45 2022 +0100"
      },
      "message": "patch 9.0.0683: cannot specify a time for :echowindow\n\nProblem:    Cannot specify a time for :echowindow.\nSolution:   A count can be used to specify the display time. Add\n            popup_findecho().\n"
    },
    {
      "commit": "a4e0b9785e409e9e660171cea76dfcc5fdafad9b",
      "tree": "3323913d9bdc9cd09029b1314a77c4a5e8191bbf",
      "parents": [
        "b850c39676db21c6f1aa3afed0e2e48d407dd60e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 01 19:43:52 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 01 19:43:52 2022 +0100"
      },
      "message": "patch 9.0.0634: evaluating \"expr\" options has more overhead than needed\n\nProblem:    Evaluating \"expr\" options has more overhead than needed.\nSolution:   Use call_simple_func() for \u0027foldtext\u0027, \u0027includeexpr\u0027, \u0027printexpr\u0027,\n            \"expr\" of \u0027spellsuggest\u0027, \u0027diffexpr\u0027, \u0027patchexpr\u0027, \u0027balloonexpr\u0027,\n            \u0027formatexpr\u0027, \u0027indentexpr\u0027 and \u0027charconvert\u0027.\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": "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": "7f9a5a68fe363db467a505502237c1e8479c1436",
      "tree": "49178a3128f8672899878fe7665ddf13fd0bf466",
      "parents": [
        "259a741044812df739457e25eb5195d9c5c0e6f8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 23 16:37:18 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 23 16:37:18 2022 +0100"
      },
      "message": "patch 9.0.0558: Coverity warns for possibly using NULL pointer\n\nProblem:    Coverity warns for possibly using NULL pointer.\nSolution:   Only use \"evalarg\" when not NULL.\n"
    },
    {
      "commit": "86fb3f8b99d155fe6bcbb553b5596c3e9fd570a9",
      "tree": "70c15d71459370408d094260654bca87c222f52c",
      "parents": [
        "20e58561abc4116f3bfbafaef242d886dd77b303"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 23 13:27:57 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 23 13:27:57 2022 +0100"
      },
      "message": "patch 9.0.0556: leaking memory with nested functions\n\nProblem:    Leaking memory with nested functions.\nSolution:   Free saved pointer.\n"
    },
    {
      "commit": "f8addf1ca1d8c7801f6dded2341b7084d2b93e5e",
      "tree": "419cf1a57caa244652d839ea1b2331329c3f0c77",
      "parents": [
        "f5f4e85f0189790ab81c0005b703604721db13d4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 23 12:44:25 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 23 12:44:25 2022 +0100"
      },
      "message": "patch 9.0.0554: using freed memory when command follows lambda\n\nProblem:    Using freed memory when command follows lambda.\nSolution:   Don\u0027t free what is still in use. (closes #11201)\n"
    },
    {
      "commit": "69082916c8b5d321545d60b9f5facad0a2dd5a4e",
      "tree": "2d690ea5c5be07ca71a0041abee131fa814e8e44",
      "parents": [
        "f87eeb43fb29f5e3d39807e6ce49e5e2d72eb38b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 22 21:35:19 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 22 21:35:19 2022 +0100"
      },
      "message": "patch 9.0.0552: crash when using NUL in buffer that uses :source\n\nProblem:    Crash when using NUL in buffer that uses :source.\nSolution:   Don\u0027t get a next line when skipping over NL.\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": "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": "acd6b9976bd939035025a16ceb4213a680827927",
      "tree": "916b389f97f7a4094336ed69e9ab35d264718b0c",
      "parents": [
        "d5bc762dea1fd32fa04342f8149f95ccfc3b9709"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 17 16:27:39 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 17 16:27:39 2022 +0100"
      },
      "message": "patch 9.0.0487: using freed memory with combination of closures\n\nProblem:    Using freed memory with combination of closures.\nSolution:   Do not use a partial after it has been freed through the\n            funcstack.\n"
    },
    {
      "commit": "0cdfb7ce462393595b0308dcabf343e82f05319d",
      "tree": "bce26a7c87ee0f99bc30006d3c0b02d813afc6da",
      "parents": [
        "8abb584ab85d5855d810d1c6e2b260f45ec839b7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 17 15:44:52 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 17 15:44:52 2022 +0100"
      },
      "message": "patch 9.0.0485: 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:   Make a copy of loop variables used in a closure.\n"
    },
    {
      "commit": "766ae5b252eaa6ee2bff70f1913d1cbfb51101bd",
      "tree": "c8e34f8e495b00c7e36e9310ab5becb5f9924ecc",
      "parents": [
        "353b68a99189875a8460124d44fc33eae6def74e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 14 00:30:51 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 14 00:30:51 2022 +0100"
      },
      "message": "patch 9.0.0460: loop variable can\u0027t be found\n\nProblem:    Loop variable can\u0027t be found.\nSolution:   Adjust block_id of the loop variable each round.\n"
    },
    {
      "commit": "9510d22463055f56548ff461ccbc54caa1ba1a2f",
      "tree": "5c084eccddd0a17e08c4bba2d5fec6d4cc969144",
      "parents": [
        "cce82a55b8105560a2ef724999c856966337b48e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 11 15:14:05 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 11 15:14:05 2022 +0100"
      },
      "message": "patch 9.0.0444: trying to declare g:variable gives confusing error\n\nProblem:    Trying to declare g:variable gives confusing error.\nSolution:   Give a better error message. (closes #11108)\n"
    },
    {
      "commit": "55e9366e32bc0e1056478d1d0ae935f9cf039d6a",
      "tree": "f29bfdfceb04f972b6834f8a7a3d1c59668ee903",
      "parents": [
        "71b6d3397649fed68ef587aa863fcbdf5fdb057a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 10 13:52:26 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 10 13:52:26 2022 +0100"
      },
      "message": "patch 9.0.0437: no error when custom completion function returns wrong type\n\nProblem:    No error when a custom completion function returns something else\n            than the expected list.\nSolution:   Give an error. (closes #11100)\n"
    },
    {
      "commit": "f21d546d8f80b85a1770fc4c9f48f2d92e2e82fa",
      "tree": "387168873a877d1653aeb4228daadba9b7762b76",
      "parents": [
        "9ba2786f15f0b53a90fd221832a5bedfc6dbfe20"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 10 12:36:00 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 10 12:36:00 2022 +0100"
      },
      "message": "patch 9.0.0435: compiler warning for uninitialized variable\n\nProblem:    Compiler warning for uninitialized variable.\nSolution:   Initialize it.\n"
    },
    {
      "commit": "12553ada3b1ceee0179527abc9980b8392fd6c7e",
      "tree": "9c040e68860c5828a5d36efb73fb9f3744c56865",
      "parents": [
        "6de2296e5e696b894576d48239aaab0ae84486ff"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 10 10:42:20 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 10 10:42:20 2022 +0100"
      },
      "message": "patch 9.0.0433: Coverity warns for not checking allocation failure\n\nProblem:    Coverity warns for not checking allocation failure.\nSolution:   Check that allocating a list or blob succeeded.\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": "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": "06fef1b2bdc07c6170b178e34b4712c21bd81a2e",
      "tree": "7df0cf7426860a4d71b75a4d08898db36a2fd4f8",
      "parents": [
        "1d84f7608f1e41dad03b8cc7925895437775f7c0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 03 21:53:28 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 03 21:53:28 2022 +0100"
      },
      "message": "patch 9.0.0371: compiler warning for uninitialized variable\n\nProblem:    Compiler warning for uninitialized variable.\nSolution:   Initialize the variable. (John Marriott)\n"
    },
    {
      "commit": "6ac69ed9a23fcbccc54574ded1cbab5065e19c41",
      "tree": "933e6d9b26eaa6665da58cfc72c47fc765861fb7",
      "parents": [
        "91a874eb88eff2df9b8fdd64ccf98eed337823cf"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 03 12:09:07 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 03 12:09:07 2022 +0100"
      },
      "message": "patch 9.0.0366: cannot use import-\u003eFunc() in lambda\n\nProblem:    Cannot use import-\u003eFunc() in lambda. (Israel Chauca Fuentes)\nSolution:   Adjust how an expression in a lambda is parsed. (closes #11042)\n"
    },
    {
      "commit": "a02a8a4d849906ae100f46f23642b5f7d1bd314e",
      "tree": "d5f20000e11bed560f6ff1135860edba4355305f",
      "parents": [
        "6c667bdc9489963102bd6c46b1b73e4d43c034ce"
      ],
      "author": {
        "name": "Yasuhiro Matsumoto",
        "email": "mattn.jp@gmail.com",
        "time": "Fri Sep 02 12:16:21 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 02 12:16:21 2022 +0100"
      },
      "message": "patch 9.0.0356: :echowindow sets the in_echowindow flag too early\n\nProblem:    :echowindow sets the in_echowindow flag too early.\nSolution:   Set in_echowindow only when outputting the text. (Yasuhiro\n            Matsumoto, closes #11033)\n"
    },
    {
      "commit": "b5b4f61cf192324379b6a8c4f7ed83a13f0e3bc6",
      "tree": "fa39548983e85dc2255c0dba25a17b9561a97e29",
      "parents": [
        "7d7ad7b2e8c6403033fbdb083f092321c0ccbfaf"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 01 16:43:17 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 01 16:43:17 2022 +0100"
      },
      "message": "patch 9.0.0351: message window may obscure the command line\n\nProblem:    Message window may obscure the command line.\nSolution:   Reduce the maximum height of the message window.\n"
    },
    {
      "commit": "a2a8973e51a0052bb52e43a2b22e7ecdecc32003",
      "tree": "42700a5eab4930539b87591ad903f7271b527fc3",
      "parents": [
        "a63ad78ed31e36dbdf3a9cd28071dcdbefce7d19"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 31 14:46:18 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 31 14:46:18 2022 +0100"
      },
      "message": "patch 9.0.0340: the \u0027cmdheight\u0027 zero support causes too much trouble\n\nProblem:    The \u0027cmdheight\u0027 zero support causes too much trouble.\nSolution:   Revert support for \u0027cmdheight\u0027 being zero.\n"
    },
    {
      "commit": "37fef16c225eabed28a3c7a0542d2eeef30d812b",
      "tree": "57bebcbc858d18cb593d625d7eb659eb8f3a3c7a",
      "parents": [
        "54acb90d9e672315e3bd13f8dc71f828df97c868"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 29 18:16:32 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 29 18:16:32 2022 +0100"
      },
      "message": "patch 9.0.0321: cannot use the message popup window directly\n\nProblem:    Cannot use the message popup window directly.\nSolution:   Add \":echowindow\".\n"
    },
    {
      "commit": "134b86553c12c46e0ae7d534f6fe65e8ba2d50bc",
      "tree": "11fffb0e3c9fccdd446276d1414c508d1bc98e3f",
      "parents": [
        "f2fb54f641aa0e8a64356e4d0053f89b52c78229"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 28 21:36:43 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 28 21:36:43 2022 +0100"
      },
      "message": "patch 9.0.0307: :echomsg doesn\u0027t work properly with cmdheight\u003d0\n\nProblem:    :echomsg doesn\u0027t work properly with cmdheight\u003d0.\nSolution:   Improve scrolling and displaying.\n"
    },
    {
      "commit": "753885b6c5b9021184daa94d32fd8bf025f1b488",
      "tree": "d0d9e106e111e6d1bf3f200ca83a4b0a3fad7ae0",
      "parents": [
        "f5240b96f721b08d703340ff0b2e67b79fb8b821"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 24 16:30:36 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 24 16:30:36 2022 +0100"
      },
      "message": "patch 9.0.0253: a symlink to an autoload script results in two entries\n\nProblem:    A symlink to an autoload script results in two entries in the list\n            of scripts, items expected in one are actually in the other.\nSolution:   Have one script item refer to the actually sourced one.\n            (closes #10960)\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": "3f74c0ab32de7ed17dd16d9b06f5455a0bb1c297",
      "tree": "9e625386219dc1f5503d7e9a6a7e3ae75a9d2e17",
      "parents": [
        "db9b96d84491131460e5876fe21b9bbc58c73ed7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 06 18:12:06 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 06 18:12:06 2022 +0100"
      },
      "message": "patch 9.0.0156: giving E1170 only in an expression is confusing\n\nProblem:    Giving E1170 only in an expression is confusing.\nSolution:   Give E1170 for any \"#{ comment\". (closes #10855)\n"
    },
    {
      "commit": "25f40af9d2f04d18c8a276249f2794e83aa5c290",
      "tree": "211120fc59c884678f5d27233a85af3401452c83",
      "parents": [
        "5ac4b1a24e3ba52698a0d24b22cdd2e1c7895417"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 06 11:35:28 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 06 11:35:28 2022 +0100"
      },
      "message": "patch 9.0.0150: error for using #{ in an expression is a bit confusing\n\nProblem:    Error for using #{ in an expression is a bit confusing.\nSolution:   Mention that this error is only given for an expression.\n            Avoid giving the error more than once. (closes #10855)\n"
    },
    {
      "commit": "79481367a457951aabd9501b510fd7e3eb29c3d8",
      "tree": "d9da93e48e64e913dfb838c76da8d0c0fe72ab62",
      "parents": [
        "fee511c1d39ecd155e27545cf70aeaa99d31b215"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 27 20:15:10 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 27 20:15:10 2022 +0100"
      },
      "message": "patch 8.2.5169: nested :source may use NULL pointer\n\nProblem:    Nested :source may use NULL pointer.\nSolution:   Do not use the NULL pointer.\n"
    },
    {
      "commit": "75ebd2aab0f009049561f60424d521ba5f80063a",
      "tree": "08dcb10638a10e06467a8372d0916f02c84d41ad",
      "parents": [
        "bfaa24f95343af9c058696644375d04e660f1b00"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jun 03 17:39:46 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jun 03 17:39:46 2022 +0100"
      },
      "message": "patch 8.2.5053: cannot have a comment halfway an expression in a block\n\nProblem:    Cannot have a comment halfway an expression in an autocmd command\n            block.\nSolution:   When skipping over the NL also skip over comments. (closes #10519)\n"
    },
    {
      "commit": "4aaf3e7f4db599932d01d87e5bbcdc342cccee27",
      "tree": "951e0288738fd50c88a74c94a8ddb8d899985b51",
      "parents": [
        "10db31f9493425a20f1e53d0f214e621f16d65de"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 30 20:58:55 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 30 20:58:55 2022 +0100"
      },
      "message": "patch 8.2.5046: vim_regsub() can overwrite the destination\n\nProblem:    vim_regsub() can overwrite the destination.\nSolution:   Pass the destination length, give an error when it doesn\u0027t fit.\n"
    },
    {
      "commit": "cfe456543e840d133399551f8626d985e1fb1958",
      "tree": "88e1820132eef74ed7abab2334d51019cb6f47d2",
      "parents": [
        "02e8d4e4ffcdd6ee919e19692d591da8e18a565d"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Fri May 27 17:26:55 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 27 17:26:55 2022 +0100"
      },
      "message": "patch 8.2.5029: \"textlock\" is always zero\n\nProblem:    \"textlock\" is always zero.\nSolution:   Remove \"textlock\" and rename \"textwinlock\" to \"textlock\".\n            (closes #10489)\n"
    },
    {
      "commit": "68e64d2c1735f2a39afa8a0475ae29bedb116684",
      "tree": "fc30407cfebef2a874ca6a83f4351ceef025d657",
      "parents": [
        "5b529230f144028b67ed1d59207af098c18a1858"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 22 22:07:52 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 22 22:07:52 2022 +0100"
      },
      "message": "patch 8.2.5006: asan warns for undefined behavior\n\nProblem:    Asan warns for undefined behavior.\nSolution:   Cast the shifted value to unsigned.\n"
    },
    {
      "commit": "338bf58eba758585ffef3fdfdba7d48477aacb7c",
      "tree": "5ae6ce8b90f6aaaa06eb6d2192c9102c59fdd3b1",
      "parents": [
        "a061f34191712df7dde7716705fe0ec074e9758e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 22 20:16:32 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 22 20:16:32 2022 +0100"
      },
      "message": "patch 8.2.5004: right shift on negative number does not work as documented\n\nProblem:    Right shift on negative number does not work as documented.\nSolution:   Use a uvarnumber_T type cast.\n"
    },
    {
      "commit": "a061f34191712df7dde7716705fe0ec074e9758e",
      "tree": "f8a3bf02c826aeb748d12bfa74ead3e9f74573a2",
      "parents": [
        "9b2edfd3bf2f14a1faaee9b62930598a2e77a798"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun May 22 19:13:49 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 22 19:13:49 2022 +0100"
      },
      "message": "patch 8.2.5003: cannot do bitwise shifts\n\nProblem:    Cannot do bitwise shifts.\nSolution:   Add the \u003e\u003e and \u003c\u003c operators. (Yegappan Lakshmanan, closes #8457)\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": "a7583c42cd6b64fd276a5d7bb0db5ce7bfafa730",
      "tree": "ee867b59f724d625198f985cb90cd84af7571b18",
      "parents": [
        "249591057b4840785c50e41dd850efb8a8faf435"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 07 21:14:05 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 07 21:14:05 2022 +0100"
      },
      "message": "patch 8.2.4912: using execute() to define a lambda doesn\u0027t work\n\nProblem:    Using execute() to define a lambda doesn\u0027t work. (Ernie Rael)\nSolution:   Put the getline function in evalarg. (closes #10375)\n"
    }
  ],
  "next": "39be4981cdd93a185b110536f84d99ce56e2c3cc"
}
