)]}'
{
  "log": [
    {
      "commit": "0233bdfa2b487c392dc4fd1a29113e08fbace334",
      "tree": "83551e09979e7baa762cd11a65ddff2153883e4e",
      "parents": [
        "043d7b2c84cda275354aa023b5769660ea70a168"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Jan 12 12:33:30 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 12 12:33:30 2023 +0000"
      },
      "message": "patch 9.0.1183: 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 #11805)\n"
    },
    {
      "commit": "d82a47dd0493ee976aa3f15ecdc9aea7da6ad5bf",
      "tree": "604109254c7057942fce5c1af26fdd1bc36c066f",
      "parents": [
        "bb8cac56d9c398a2b546d9c81c15e8c3d8fd811e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 05 20:24:39 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 05 20:24:39 2022 +0000"
      },
      "message": "patch 8.2.4012: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move the last error messages to errors.h.\n"
    },
    {
      "commit": "9d00e4a8146862c17ed429dc6b1b43349acb2b5f",
      "tree": "79a1e0d0a738940dba6a9a86936376bd62e04ca3",
      "parents": [
        "d3a117814d6acbf0dca3eff1a7626843b9b3734a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 05 17:49:15 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 05 17:49:15 2022 +0000"
      },
      "message": "patch 8.2.4010: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more error messages to errors.h.\n"
    },
    {
      "commit": "a6f7929e62c19a6a2418a016b4c59b83eb1887ac",
      "tree": "dff539628404695bd64e68602c8f7f62d9dd12f7",
      "parents": [
        "548911ee145cdd166f20e46aa720d1631e66f64e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 04 21:30:47 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 04 21:30:47 2022 +0000"
      },
      "message": "patch 8.2.4005: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more error messages to errors.h.\n"
    },
    {
      "commit": "9a846fbaa569b3690d70606f2a86e97f77a05496",
      "tree": "cbe5304927fe21586593c94342e4f023aa3e0837",
      "parents": [
        "b34689010a587e85ff724051f276513a15c634d0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 01 21:59:18 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 01 21:59:18 2022 +0000"
      },
      "message": "patch 8.2.3977: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more error messages to errors.h.\n"
    },
    {
      "commit": "460ae5dfca31fa627531c263184849976755cf6b",
      "tree": "d94de6a24285bc10fd62ad4ae9aecb53f9a7e913",
      "parents": [
        "b37a65e4bf08c4eec4fa5b81a5efc3945fca44de"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 01 14:19:49 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 01 14:19:49 2022 +0000"
      },
      "message": "patch 8.2.3967: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more errors to errors.h.\n"
    },
    {
      "commit": "af4a61a85d6e8cacc35324f266934bc463a21673",
      "tree": "3b2e75b8a36bc8e79d2bc407d929a84b69fd0e0c",
      "parents": [
        "5da36052a4bb0f3a9747ec3a8ab9d85e058e39fa"
      ],
      "author": {
        "name": "Dominique Pelle",
        "email": "dominique.pelle@gmail.com",
        "time": "Mon Dec 27 17:21:41 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 27 17:21:41 2021 +0000"
      },
      "message": "patch 8.2.3914: various spelling mistakes in comments\n\nProblem:    Various spelling mistakes in comments.\nSolution:   Fix the mistakes. (Dominique Pellé, closes #9416)\n"
    },
    {
      "commit": "1a3e5747b7df7ddda312bbfd18e04fc2122001fb",
      "tree": "df3916d14b86db869aa32ce5a032e4d7dc09f0fa",
      "parents": [
        "5a234eb18e6e43408755bb24e813330306c11629"
      ],
      "author": {
        "name": "Martin Tournoij",
        "email": "martin@arp242.net",
        "time": "Sat Jul 24 13:57:29 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 24 13:57:29 2021 +0200"
      },
      "message": "patch 8.2.3208: dynamic library load error does not mention why it failed\n\nProblem:    Dynamic library load error does not mention why it failed.\nSolution:   Add the error message. (Martin Tournoij, closes #8621)\n"
    },
    {
      "commit": "2e2f52a4a0fd560d37a11a7383a4d52b63ca6cfc",
      "tree": "c4bde05ee74541b38cfb98052cb4dd64ea91c999",
      "parents": [
        "ef2dff52de52c17fe1bd7c06cbb32d8955901f5a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 21 16:03:02 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 21 16:03:02 2020 +0100"
      },
      "message": "patch 8.2.2178: Python 3: non-utf8 character cannot be handled\n\nProblem:    Python 3: non-utf8 character cannot be handled.\nSolution:   Change the string decode. (Björn Linse, closes #1053)\n"
    },
    {
      "commit": "4ce5fe4c87820c7d22964d6e91d7b07e96640e6f",
      "tree": "900ca0ee352311d36d485c2dd12a9e828e274ab3",
      "parents": [
        "c58f5456e5c5f21193e960cecc434e367ef1281e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 21 21:01:59 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 21 21:01:59 2020 +0200"
      },
      "message": "patch 8.2.1883: compiler warnings when using Python\n\nProblem:    Compiler warnings when using Python.\nSolution:   Adjust PyCFunction to also have the second argument.  Use \"int\"\n            return type for some functions.  Insert \"(void *)\" to get rid of\n            the remaining warnings.\n"
    },
    {
      "commit": "2027973b5be693577bea0731b50ea4904d19ea8b",
      "tree": "9d1be9f140c9ba2e03bac242fb52ee99288a6313",
      "parents": [
        "5908fdf72fa1995735e38c46f254ddde81a87c1f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 29 20:51:07 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 29 20:51:07 2020 +0200"
      },
      "message": "patch 8.2.0479: unloading shared libraries on exit has no purpose\n\nProblem:    Unloading shared libraries on exit has no purpose.\nSolution:   Do not unload shared libraries on exit.\n"
    },
    {
      "commit": "2ab2e8608f9b2c85432715bb9a7f226fdbf8cd35",
      "tree": "0a361d816527e615a7b64298e7c51c16d65fb015",
      "parents": [
        "9834b96820bec95d6858229d6fb256310365efff"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 04 21:24:53 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 04 21:24:53 2019 +0100"
      },
      "message": "patch 8.1.2387: using old C style comments\n\nProblem:    Using old C style comments.\nSolution:   Use // comments where appropriate.\n"
    },
    {
      "commit": "8e9a24a127c4ef8833fdc3986623f96c7d04210f",
      "tree": "d1aee2626ace3749ccbac2766ee158037b43bf2a",
      "parents": [
        "828bff1f9b4847da79abd7a97ddc48687e257d6c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 19 22:22:55 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 19 22:22:55 2019 +0100"
      },
      "message": "patch 8.1.1021: pyeval() and py3eval() leak memory\n\nProblem:    pyeval() and py3eval() leak memory.\nSolution:   Do not increase the reference count twice. (Ozaki Kiichi,\n            closes #4129)\n"
    },
    {
      "commit": "14816ad6e58336773443f5ee2e4aa9e384af65d2",
      "tree": "f53327ad0ffed33997cf4bbe9ce4725cb2221980",
      "parents": [
        "0472b6d149445579e3a63519b15f099f9adda3f7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 18 22:04:56 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 18 22:04:56 2019 +0100"
      },
      "message": "patch 8.1.0950: using :python sets \u0027pyxversion\u0027 even when not executed\n\nProblem:    Using :python sets \u0027pyxversion\u0027 even when not executed.\nSolution:   Check the \"skip\" flag. (Shane Harper, closes #3995)\n"
    },
    {
      "commit": "4f97475d326c2773a78561fb874e4f23c25cbcd9",
      "tree": "7e066bc70556dfbb415ddb9f364e8432e8aaf189",
      "parents": [
        "78d21dae9c3a39efb30316d3e38dce120bc1abbd"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 17 17:44:42 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 17 17:44:42 2019 +0100"
      },
      "message": "patch 8.1.0941: macros for MS-Windows are inconsistent\n\nProblem:    Macros for MS-Windows are inconsistent, using \"32\", \"3264 and\n            others.\nSolution:   Use MSWIN for all MS-Windows builds.  Use FEAT_GUI_MSWIN for the\n            GUI build. (Hirohito Higashi, closes #3932)\n"
    },
    {
      "commit": "65951258d65b71581aeb117dbb7defa8a87ce38f",
      "tree": "3252de27de59fb9a8df766a9c1f77ecfe13f81fc",
      "parents": [
        "1c321dcee966b82a527cb34bbadd5874d6bc454a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Feb 01 22:10:16 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Feb 01 22:10:16 2019 +0100"
      },
      "message": "patch 8.1.0867: cannot build Python interface with Python 2.4\n\nProblem:    Cannot build Python interface with Python 2.4. (Tom G. Christensen)\nSolution:   Define PyBytes_FromStringAndSize. (Ken Takata, closes #3888)\n"
    },
    {
      "commit": "f9e3e09fdc93be9f0d47afbc6c7df1188c2a5a0d",
      "tree": "a6b07005c19279a4f5d01be14f14861c2657fa95",
      "parents": [
        "05500ece6282407f9f7227aaf564e24147326863"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 13 23:38:42 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 13 23:38:42 2019 +0100"
      },
      "message": "patch 8.1.0743: giving error messages is not flexible\n\nProblem:    Giving error messages is not flexible.\nSolution:   Add semsg().  Change argument from \"char_u *\" to \"char *\", also\n            for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes\n            #3302)  Also make emsg() accept a \"char *\" argument.  Get rid of\n            an enormous number of type casts.\n"
    },
    {
      "commit": "6e5ea8d2a995b32bbc5972edc4f827b959f2702f",
      "tree": "b1ad7d6a83f53220227122719d5eb97dd32ff1e6",
      "parents": [
        "e3c74d249ac36404d8af25f74baf335d143b30e3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 12 22:47:31 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 12 22:47:31 2019 +0100"
      },
      "message": "patch 8.1.0735: cannot handle binary data\n\nProblem:    Cannot handle binary data.\nSolution:   Add the Blob type. (Yasuhiro Matsumoto, closes #3638)\n"
    },
    {
      "commit": "d4a8c98ef6b294d605c5f93309509a944dc97a79",
      "tree": "4af02ac4a3d6f880ce362789d9f845255499604d",
      "parents": [
        "259f26ac2d41ecfb28b82c651b2bfc1edc7c3e29"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 15 22:31:18 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 15 22:31:18 2018 +0200"
      },
      "message": "patch 8.0.1846: Python interface is incompatible with lldb\n\nProblem:    Python interface is incompatible with lldb.\nSolution:   For OutputType set the base to be PyFile_Type. (Boxu Zhang)\n            Partly disabled to avoid a crash.\n"
    },
    {
      "commit": "7b24ce08fe99345cac035215fca29c7e174a6456",
      "tree": "9e4b16243f3c4eb9906a6e35950b8f14c994999a",
      "parents": [
        "1834d37396e046ccbc4aa2678ba16a38197da6b4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 29 18:15:26 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 29 18:15:26 2018 +0200"
      },
      "message": "patch 8.0.1654: warnings for conversion of void to function pointer\n\nProblem:    Warnings for conversion of void to function pointer.\nSolution:   Use a temp variable that is a function pointer.\n"
    },
    {
      "commit": "792f0e36593d1ec13ccb8a622ca5542c500577b4",
      "tree": "34a6e9340f01bc14adda8f1f286ab56788b06de0",
      "parents": [
        "5d7ead3bc85eefd0929bfcbb579510c8164ea1be"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 27 17:27:13 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 27 17:27:13 2018 +0100"
      },
      "message": "patch 8.0.1550: various small problems in source files\n\nProblem:    Various small problems in source files.\nSolution:   Fix the problems.\n"
    },
    {
      "commit": "94073167e3aa8cbe18380e93a2fc8e8165438cc8",
      "tree": "2e7c3078ffc53518b95979a118b16403699381ae",
      "parents": [
        "1dd45fb4f3371f0256653b2186c8b4b3d26b3f41"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 31 21:49:05 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 31 21:49:05 2018 +0100"
      },
      "message": "patch 8.0.1451: difficult to set the python home directories properly\n\nProblem:    It is difficult to set the python home directory properly for\n            Python 2.7 and 3.5 since both use $PYTHONHOME.\nSolution:   Add the \u0027pythonhome\u0027 and \u0027pythonthreehome\u0027 options. (Kazuki\n            Sakamoto, closes #1266)\n"
    },
    {
      "commit": "d057301b1f28736f094affa17b190244ad56e8d9",
      "tree": "ae20801354321a5ff0d7d23b04d8d6018c57645a",
      "parents": [
        "ef83956e1e67736b4c6b886d897b74f022622a74"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 28 21:11:06 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 28 21:11:06 2017 +0200"
      },
      "message": "patch 8.0.1236: Mac features are confusing\n\nProblem:    Mac features are confusing.\nSolution:   Make feature names more consistent, add \"osxdarwin\". Rename\n            feature flags, cleanup Mac code. (Kazunobu Kuriyama, closes #2178)\n"
    },
    {
      "commit": "4033c55eca575777718c0701e26635a0cc47d907",
      "tree": "8dc460ad495106198a9119b52f6505033f7a75b3",
      "parents": [
        "e738a1a033cd31cd2568ba99a9e2dca1e65b45ea"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 16 20:54:51 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 16 20:54:51 2017 +0200"
      },
      "message": "patch 8.0.1118: FEAT_WINDOWS adds a lot of #ifdefs\n\nProblem:    FEAT_WINDOWS adds a lot of #ifdefs while it is nearly always\n            enabled and only adds 7% to the binary size of the tiny build.\nSolution:   Graduate FEAT_WINDOWS.\n"
    },
    {
      "commit": "c4f833808af930505017c9389d44a828601e247c",
      "tree": "577f9425a910a666e2d6d8cad51a411460ec8cca",
      "parents": [
        "8858498516108432453526f07783f14c9196e112"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 07 14:50:44 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 07 14:50:44 2017 +0200"
      },
      "message": "patch 8.0.0698: crash on exit when using Python function in timer.\n\nProblem:    When a timer uses \":pyeval\" or another Python command and it\n            happens to be triggered while exiting a Crash may happen.\n            (Ricky Zhou)\nSolution:   Avoid running a Python command after python_end() was called.\n            Do not trigger timers while exiting.  (closes #1824)\n"
    },
    {
      "commit": "f42dd3c3901ea0ba38e67a616aea9953cae81b8d",
      "tree": "3626ca40161dbfaa5e72a4dbeaa46b24480ddc8c",
      "parents": [
        "0c0590d9827cb07a33c1552cb3558b94bddcb4dc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 28 16:06:38 2017 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 28 16:06:38 2017 +0100"
      },
      "message": "patch 8.0.0251: not easy to select Python 2 or 3\n\nProblem:    It is not so easy to write a script that works with both Python 2\n            and Python 3, even when the Python code works with both.\nSolution:   Add \u0027pyxversion\u0027, :pyx, etc. (Marc Weber, Ken Takata)\n"
    },
    {
      "commit": "6d4431e7b675ba7a0194c0b8eb84b7d92e4e7953",
      "tree": "ff1a1467afecfc2a5a630e20cf3b0756834519f3",
      "parents": [
        "d106e5ba7f10f0d2a14eaefe5d78405044416cb9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 21 20:00:56 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 21 20:00:56 2016 +0200"
      },
      "message": "patch 7.4.1769\nProblem:    No \"closed\", \"errors\" and \"encoding\" attribute on Python output.\nSolution:   Add attributes and more tests. (Roland Puntaier, closes #622)\n"
    },
    {
      "commit": "8110a091bc749d8748a20807a724a3af3ca6d509",
      "tree": "87a81daf5175f9c892e6eca0e36f64a6400a1cb6",
      "parents": [
        "58de0e2dcc1f2d251b74892a06d71a14973f3187"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 14 15:56:09 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 14 15:56:09 2016 +0200"
      },
      "message": "patch 7.4.1731\nProblem:    Python: turns partial into simple funcref.\nSolution:   Use partials like partials. (Nikolai Pavlov, closes #734)\n"
    },
    {
      "commit": "1735bc988c546cc962c5f94792815b4d7cb79710",
      "tree": "5d1fcc3e5d0f0d37fa33097c2eacff4cbc2317d4",
      "parents": [
        "9cdf86b86f5fdb5a45b682f336846f9d9a9c6f1f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Mar 14 23:05:14 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Mar 14 23:05:14 2016 +0100"
      },
      "message": "patch 7.4.1559\nProblem:    Passing cookie to a callback is clumsy.\nSolution:   Change function() to take arguments and return a partial.\n"
    },
    {
      "commit": "6aa2cd4be287f35f95f35c2cec6d5a24f53c4d3c",
      "tree": "d2277cebb1354524326ac1333b3bd47f7453c456",
      "parents": [
        "f8df7addc5f741c16fa2a458f8777ac1fdf2e01e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 16 15:06:59 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 16 15:06:59 2016 +0100"
      },
      "message": "patch 7.4.1334\nProblem:    Many compiler warnings with MingW.\nSolution:   Add type casts. (Yasuhiro Matsumoto)\n"
    },
    {
      "commit": "7707344ddec9069b495b2a5ed41f2104466fc88b",
      "tree": "9c6b21f811c7c38a89daf010c61453d7d6eaa8da",
      "parents": [
        "e516c39ee97cb85fa230fbb1b1f54ad1346920d9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 13 23:23:53 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 13 23:23:53 2016 +0100"
      },
      "message": "patch 7.4.1315\nProblem:    Using a channel handle does not allow for freeing it when unused.\nSolution:   Add the Channel variable type.\n"
    },
    {
      "commit": "eba6d8c66c3511a5e1bfe6ffa30c8bea47d129ad",
      "tree": "27d8583580f559176697b41838b9f7715b642fb0",
      "parents": [
        "595e64e259faefb330866852e1b9f6168544572a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 07 19:25:51 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 07 19:25:51 2016 +0100"
      },
      "message": "patch 7.4.1280\nProblem:    Missing case value.\nSolution:   Add VAR_JOB.\n"
    },
    {
      "commit": "1701481c53f4e6756038c9c00d51d491a8f42c65",
      "tree": "76b2d1c8bfb703e961555f0505b02c8ec5bc20bf",
      "parents": [
        "3712792637516aea7acf76a11533be1066952820"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 06 20:32:25 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 06 20:32:25 2016 +0100"
      },
      "message": "patch 7.4.1272\nProblem:    Using future enum value.\nSolution:   Remove it.\n"
    },
    {
      "commit": "81e7a9c3fb37cad46c8f04a5ce871fb06819a371",
      "tree": "137d60842f9637b69037c043e9e5f6e6215d3402",
      "parents": [
        "4f8b8faec31a934920a723053e8dcf47b6fac08c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 06 19:57:20 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 06 19:57:20 2016 +0100"
      },
      "message": "patch 7.4.1270\nProblem:    Warnings for missing values in switch.\nSolution:   Change switch to if-else or add values.\n"
    },
    {
      "commit": "68c2f638e65d914dc6e84eb7ce2624f08af525c0",
      "tree": "051b6b7500c6ac80c45cdeff26296c5b7acb88ff",
      "parents": [
        "66f948e928d5e0cd3123af902aa8ac1613534c94"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 30 17:24:07 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 30 17:24:07 2016 +0100"
      },
      "message": "patch 7.4.1208\nProblem:    Using old style function declarations.\nSolution:   Change to new style function declarations. (script by Hirohito\n            Higashi)\n"
    },
    {
      "commit": "25e4fcde767084d1a79e0926bc301c92987c0cce",
      "tree": "2e2196f2e782cd2bd143b8ed1187697774f4a3ad",
      "parents": [
        "7b877b360532713dc21a0ff3d55a76ac02eaf573"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 09 14:57:47 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 09 14:57:47 2016 +0100"
      },
      "message": "patch 7.4.1065\nProblem:    Cannot use the \"dll\" options on MS-Windows.\nSolution:   Support the options on all platforms.  Use the built-in name as\n            the default, so that it\u0027s clear what Vim is looking for.\n"
    },
    {
      "commit": "1000565c3a2439c9a7c9759284814dbf3b8bc20d",
      "tree": "357f2fbcb81da653f6786b30175f13e3882361b7",
      "parents": [
        "2bf2417612879de627dcea1dbb22ee2199b16963"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 31 21:03:23 2015 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 31 21:03:23 2015 +0100"
      },
      "message": "patch 7.4.1012\nProblem:    Vim overwrites the value of $PYTHONHOME.\nSolution:   Do not set $PYTHONHOME if it is already set. (Kazuki Sakamoto,\n            closes #500)\n"
    },
    {
      "commit": "d94464ee294a351ce7b6ba18e8bd3f24f1bef920",
      "tree": "8c3e98bb5e0f82995a6ee8e7a0729a9ec788265c",
      "parents": [
        "8a52ba791893fd55c5bdf98825c5b3e8892eaa62"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Nov 02 15:28:18 2015 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Nov 02 15:28:18 2015 +0100"
      },
      "message": "patch 7.4.907\nProblem:    Libraries for dynamically loading interfaces can only be defined\n            at compile time.\nSolution:   Add options to specify the dll names. (Kazuki Sakamoto,\n            closes #452)\n"
    },
    {
      "commit": "2459a5ecaa43c8549ea53e9364253ff891676da5",
      "tree": "b503323856e11d0e1e47e6c81875d32b1541ee04",
      "parents": [
        "4ac163ae5f137af236931e778660cf7878d70c25"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 03 12:55:18 2015 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 03 12:55:18 2015 +0100"
      },
      "message": "updated for version 7.4.609\nProblem:    For complicated list and dict use the garbage collector can run\n            out of stack space.\nSolution:   Use a stack of dicts and lists to be marked, thus making it\n            iterative instead of recursive. (Ben Fritz)\n"
    },
    {
      "commit": "12a28d4b29f1b8a42d9fb994f1d2c9cb717564ab",
      "tree": "f54eac4b354924ed4b79c405033ec6503e5c8503",
      "parents": [
        "158a1b074828341767ad4ce912b346bf14189605"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 23 16:57:00 2014 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 23 16:57:00 2014 +0200"
      },
      "message": "updated for version 7.4.380\nProblem:    Loading python may cause Vim to exit.\nSolution:   Avoid loading the \"site\" module. (Taro Muraoka)\n"
    },
    {
      "commit": "922a4664fe51662a24097b8e74e5f716beef12f4",
      "tree": "50014c90eafda31e97acc98fe6e750570f70c391",
      "parents": [
        "498af70e066c66b66f1737b553287c1339846842"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 30 16:11:43 2014 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 30 16:11:43 2014 +0200"
      },
      "message": "updated for version 7.4.228\nProblem:    Compiler warnings when building with Python 3.2.\nSolution:   Make type cast depend on Python version. (Ken Takata)\n"
    },
    {
      "commit": "a2aa31a9269641839178b0c0663dc67405c33d3e",
      "tree": "fba5b26febe0f352a4ad0a9cace397f479ced86c",
      "parents": [
        "7d311c52ce2859f67532e0a4b604eb8147473c01"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 23 22:52:40 2014 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 23 22:52:40 2014 +0100"
      },
      "message": "updated for version 7.4.188\nProblem:    SIZEOF_LONG clashes with similar defines in header files.\nSolution:   Rename to a name starting with VIM_.  Also for SIZEOF_INT.\n"
    },
    {
      "commit": "5395e7afe93d38793dcd6520b277ec0d3b1882ac",
      "tree": "fadf9ada5e4b1e29d938d8bf765ffcebcf292643",
      "parents": [
        "1028f4d75ee04261f1338620c22f388a05098bb0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 14 19:35:56 2014 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 14 19:35:56 2014 +0100"
      },
      "message": "updated for version 7.4.153\nProblem:    Compiler warning for pointer type.\nSolution:   Add type cast.\n"
    },
    {
      "commit": "063a46ba77c3251f0b5245e872dcbad003c71024",
      "tree": "e85d7ca1c040ef4ecbef8f7bbbf7d92fe4ce823c",
      "parents": [
        "14177b77bf7bb9c3f1c7c8805bc6cff1b651c136"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 14 16:36:51 2014 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 14 16:36:51 2014 +0100"
      },
      "message": "updated for version 7.4.151\nProblem:    Python: slices with steps are not supported.\nSolution:   Support slices in Python vim.List. (ZyX)\n"
    },
    {
      "commit": "0b400087d076ba1a476d753c019fbfd96d8ae58e",
      "tree": "0cc81dc7cdb88fdb263cefb6b1bad70c2138d41c",
      "parents": [
        "9db1293317abd1aca101bf2d35caef0354f66e8b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 03 00:28:25 2013 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 03 00:28:25 2013 +0100"
      },
      "message": "updated for version 7.4.060\nProblem:    Declaration has wrong return type for PyObject_SetAttrString().\nSolution:   Use int instead of PyObject. (Andreas Schwab)\n"
    },
    {
      "commit": "41009374747d68a12d043bcca0ae649d0c18daf4",
      "tree": "e05985bb9262965f6c4ea9a4ddde724be7b89084",
      "parents": [
        "c33916a6e06db94ea1a3dfd35eee32ca80787ec5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 01 22:03:04 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 01 22:03:04 2013 +0200"
      },
      "message": "updated for version 7.3.1287\nProblem:    Python SystemExit exception is not handled properly.\nSolution:   Catch the exception and give an error. (Yasuhiro Matsumoto, Ken\n            Takata)\n"
    },
    {
      "commit": "d5e376eb3b11dbeca5478724731399d6c23c74a6",
      "tree": "b614ecd186f340cba53dda2de4cccb43770d24ec",
      "parents": [
        "7e85d3d432e799fc56126f6e3867b52539978343"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 24 20:32:57 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 24 20:32:57 2013 +0200"
      },
      "message": "updated for version 7.3.1238\nProblem:    Crash in Python interface on 64 bit machines.\nSolution:   Change argument type of PyString_AsStringAndSize. (Taro Muraoka,\n            Jun Takimoto)\n"
    },
    {
      "commit": "dee2e315d786cbe9d5bba2d388fb72d96ad1a846",
      "tree": "3a8548edebc6f07c6b08a3d2017dcb877f351bb4",
      "parents": [
        "ede3e6383d0bc86c13f039e9013ff72e307937d2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 23 16:35:47 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 23 16:35:47 2013 +0200"
      },
      "message": "updated for version 7.3.1236\nProblem:    Python: WindowSetattr() missing support for NUMBER_UNSIGNED.\nSolution:   Add NUMBER_UNSIGNED, add more tests. Various fixes. (ZyX)\n"
    },
    {
      "commit": "141be8a585145d2217fb425739ccc121aed4a8d4",
      "tree": "1fbdd6ad7db5cc23313f05d9ef8f4f1aaa0772f1",
      "parents": [
        "c476e52fcaf9e1ad779add6368e4f46b2c0d881c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 23 14:16:57 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 23 14:16:57 2013 +0200"
      },
      "message": "updated for version 7.3.1231\nProblem:    Python: use of numbers not consistent.\nSolution:   Add support for Number protocol. (ZyX)\n"
    },
    {
      "commit": "c476e52fcaf9e1ad779add6368e4f46b2c0d881c",
      "tree": "dc1d97fee9e56a07f4f1475ef938245a419c72ae",
      "parents": [
        "0bd80ccd853ddfa4cc2385b6ceb3b2610245a9ed"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 23 13:46:40 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 23 13:46:40 2013 +0200"
      },
      "message": "updated for version 7.3.1230\nProblem:    Python: Exception messages are not clear.\nSolution:   Make exception messages more verbose. (ZyX)\n"
    },
    {
      "commit": "808c2bc8bf435917b792e172a22dc5f8c0e7066a",
      "tree": "84a7b5846ce850af47f3bf8358818d46470e97d4",
      "parents": [
        "389a1793f40b149ed8553fb75e7ee40bc684d8c5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 23 13:11:18 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 23 13:11:18 2013 +0200"
      },
      "message": "updated for version 7.3.1228\nProblem:    Python: various inconsistencies and problems.\nSolution:   StringToLine now supports both bytes() and unicode() objects.\n            Make function names consistant.  Fix memory leak fixed in\n            StringToLine. (ZyX)\n"
    },
    {
      "commit": "81c40c507c69ab0c3aede3ee14a2ba76c20c4595",
      "tree": "21bb9f8a713de4a223ab7b581c90207a79cfdb97",
      "parents": [
        "27610ed76c500cf680fdbac000d269e30dcba54c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 12 14:41:04 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 12 14:41:04 2013 +0200"
      },
      "message": "updated for version 7.3.1174\nProblem:    Python 2 and 3 use different ways to load modules.\nSolution:   Use the same method. (ZyX)\n"
    },
    {
      "commit": "9f3685a527c9293b05c8ad7a6a4a7c2fa8b3b8b8",
      "tree": "4a01e3e62a1ecc504d835720319f0a26f71c041c",
      "parents": [
        "0ea4a6b94b6f7a13ef5027b43c36bda0836b51af"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 12 14:20:36 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 12 14:20:36 2013 +0200"
      },
      "message": "updated for version 7.3.1172\nProblem:    Python 2: loading modules doesn\u0027t work well.\nSolution:   Fix the code. Add more tests. (ZyX)\n"
    },
    {
      "commit": "c09a6d6c0c9d0e9056816f518171864158c72076",
      "tree": "d40e772fb06ab3fc2fee71c87c0d84ba819ed3d2",
      "parents": [
        "f9c9b32bd124235136980749bee754cae99e164a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 10 21:27:29 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 10 21:27:29 2013 +0200"
      },
      "message": "updated for version 7.3.1163\nProblem:    Not easy to load Python modules.\nSolution:   Search \"python2\", \"python3\" and \"pythonx\" directories in\n            \u0027runtimepath\u0027 for Python modules. (ZyX)\n"
    },
    {
      "commit": "f9c9b32bd124235136980749bee754cae99e164a",
      "tree": "c10aac1a4002c1bccedd888418f577d23c33c19c",
      "parents": [
        "c1ba10c7f63d65cb7ec3eb11932feb0ee636a033"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 10 20:47:36 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 10 20:47:36 2013 +0200"
      },
      "message": "updated for version 7.3.1162\nProblem:    Python: Memory leaks\nSolution:   Add more Py_DECREF(). (ZyX)\n"
    },
    {
      "commit": "0bdda37fb4b8118ec4bd797eddca9eaf5d3b381d",
      "tree": "9037d905c68c34ad25a203757d62c20cee526b47",
      "parents": [
        "bcf4d178abef9336709b53516fbf0164ce5ebe09"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 10 18:36:24 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 10 18:36:24 2013 +0200"
      },
      "message": "updated for version 7.3.1158\nProblem:    Crash when running test 86. (Jun Takimoto)\nSolution:   Define PY_SSIZE_T_CLEAN early. (Elimar Riesebieter)\n"
    },
    {
      "commit": "f4258308e288c82c30d35cb2d0e045e60bfdb21c",
      "tree": "ae6e0e2a854864471d8d6478b53f8fa0e14ea556",
      "parents": [
        "4f2109d782f91f7341a51644e3629ad1cbaea991"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 02 18:20:17 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 02 18:20:17 2013 +0200"
      },
      "message": "updated for version 7.3.1099\nProblem:    Python: Changing directory with os.chdir() causes problems for\n            Vim\u0027s notion of directories.\nSolution:   Add vim.chdir() and vim.fchdir(). (ZyX)\n"
    },
    {
      "commit": "fdde880b0288fd9624352aa7ee5c04eefbdff9df",
      "tree": "35eb921887946e22fe77042cd41c1ada2a3019b3",
      "parents": [
        "fc714b35c6dd691adfc15782d663c0a1a07a0da8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 30 15:38:24 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 30 15:38:24 2013 +0200"
      },
      "message": "updated for version 7.3.1070\nProblem:    Vim crashes in Python tests. Compiler warning for unused function.\nSolution:   Disable the tests for now. Move the function.\n"
    },
    {
      "commit": "bcb40977c3e71461f52ef5201cf55c5d427fc738",
      "tree": "d0289b4b72bb90b50574c8adda059e3f38d3e23b",
      "parents": [
        "494ff7e85033e233620ba7fec42156745758f5dc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 30 13:22:13 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 30 13:22:13 2013 +0200"
      },
      "message": "updated for version 7.3.1065\nProblem:    Python: key mapping is not standard.\nSolution:   Puthon patch 24: use PyMapping_Keys. (ZyX)\n"
    },
    {
      "commit": "a9922d62e60142f1cb9889626e82e8cc7126be1a",
      "tree": "6d2281fef42af5d2e2351d8eb8166445478930c4",
      "parents": [
        "a5b725c3f67f1c98d99fec71a3cbaad502a02291"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 30 13:01:18 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 30 13:01:18 2013 +0200"
      },
      "message": "updated for version 7.3.1061\nProblem:    Python: Dictionary is not standard.\nSolution:   Python patch 20: Add standard methods and fields. (ZyX)\n"
    },
    {
      "commit": "1a3b56953e22f9e50d34c50edb5c24292741eb3d",
      "tree": "087d4952781c37f686e0a0586b327c71260af5f9",
      "parents": [
        "a1544c00c8ace9b74714b609b5079ae61faa20b5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 30 12:40:39 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 30 12:40:39 2013 +0200"
      },
      "message": "updated for version 7.3.1059\nProblem:    Python: Using fixed size buffers.\nSolution:   Python patch 18: Use python\u0027s own formatter. (ZyX)\n"
    },
    {
      "commit": "dd8aca664d9768614d18cebec84badc3ecad3af5",
      "tree": "6002f0821e725f7829f73bc05336f4fc4ca376a3",
      "parents": [
        "432b09c84dc6daf0b7ca8dac986bc0b1faf899d7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 29 22:36:10 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 29 22:36:10 2013 +0200"
      },
      "message": "updated for version 7.3.1047\nProblem:    Python: dir() does not work properly.\nSolution:   Python patch 8.  Add __dir__ method to all objects with custom\n            tp_getattr supplemented by __members__ attribute for at least\n            python-2* versions.  __members__ is not mentioned in python-3*\n            dir() output even if it is accessible. (ZyX)\n"
    },
    {
      "commit": "9e822c00b1fdf3e0604dbb520f593d8de6c15098",
      "tree": "2bfb2b78ea873331cc74f1d32183114b391c9aaf",
      "parents": [
        "3e734ea2c7d6bc78cf5d2851c1e4ddbad2e028d1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 29 22:15:30 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 29 22:15:30 2013 +0200"
      },
      "message": "updated for version 7.3.1044\nProblem:    Python: No {Buffer,TabPage,Window}.valid attributes.\nSolution:   Python patch 5: add .valid (ZyX)\n"
    },
    {
      "commit": "3e734ea2c7d6bc78cf5d2851c1e4ddbad2e028d1",
      "tree": "5683e59afc05fb203e8d2ace044dd475a6b95048",
      "parents": [
        "e9ba516be2873b80e51aa24cd6c25f9b29612695"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 29 22:05:55 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 29 22:05:55 2013 +0200"
      },
      "message": "updated for version 7.3.1043\nProblem:    Python: Dynamic compilation with 2.3 fails.\nSolution:   Python patch 4. (ZyX)\n"
    },
    {
      "commit": "e9ba516be2873b80e51aa24cd6c25f9b29612695",
      "tree": "620ac235a6fe7dab512cfc871b7e63ba99bba761",
      "parents": [
        "1bc2428e1f7782870ae9e304f0db2388fe4a5a14"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 29 22:02:22 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 29 22:02:22 2013 +0200"
      },
      "message": "updated for version 7.3.1042\nProblem:    Python: can\u0027t assign to vim.Buffer.name.\nSolution:   Python patch 3. (ZyX)\n"
    },
    {
      "commit": "0014a53ad18c7e8aeeb33b6e68c120fdbcead177",
      "tree": "cd751064f92a4cdfae273b26056a547889dec616",
      "parents": [
        "423532e10d7335750afbace57ba65c0b6f138756"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 29 21:33:39 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 29 21:33:39 2013 +0200"
      },
      "message": "updated for version 7.3.1040\nProblem:    Python: Problems with debugging dynamic build.\nSolution:   Python patch 1. (ZyX)\n"
    },
    {
      "commit": "2a0f3d3fb2a7e26d47810098894f8e615571afe3",
      "tree": "e402ca98134661b2a3f133083adf18bdc66151b6",
      "parents": [
        "0b9aecc3a5020a3f3714bf4e58046321b46632fb"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 22:23:56 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 22:23:56 2013 +0200"
      },
      "message": "updated for version 7.3.1003\nProblem:    Python interface does not compile with Python 2.2\nSolution:   Fix thread issues and True/False. (ZyX)\n"
    },
    {
      "commit": "774267bbb9ac66c89e6e1781c19730a58c772752",
      "tree": "b284bdfe40281a035956ac88f732e7976714da8d",
      "parents": [
        "a7b64ce74e857d4516b87ca80c850e5ef6324ba6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 20:51:59 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 20:51:59 2013 +0200"
      },
      "message": "updated for version 7.3.998\nProblem:    Python: garbage collection issues.\nSolution:   Fix the GC issues: Use proper DESTRUCTOR_FINISH: avoids negative\n            refcounts, use PyObject_GC_* for objects with tp_traverse and\n            tp_clear, add RangeTraverse and RangeClear, use Py_XDECREF in some\n            places. (ZyX)\n"
    },
    {
      "commit": "1dc28783fa3f5946238b4c8020aea460db80269b",
      "tree": "c3243d73c10b228f11915f20951046bfc9d4dda4",
      "parents": [
        "182dc4f2abe6ae6fd20a6c089c3adf45c8b1334d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 19:11:01 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 19:11:01 2013 +0200"
      },
      "message": "updated for version 7.3.995\nProblem:    Python: Module initialization is duplicated.\nSolution:   Move to shared file. (ZyX)\n"
    },
    {
      "commit": "d6e391862c58d7c7494b8c4cc65a4b745d7eafe1",
      "tree": "119591b06dd9f58ab03dee643459635649440202",
      "parents": [
        "b52f4c02e63a76b933b48026687b322ee2353f11"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 18:30:34 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 18:30:34 2013 +0200"
      },
      "message": "updated for version 7.3.992\nProblem:    Python: Too many type casts.\nSolution:   Change argument types. (ZyX)\n"
    },
    {
      "commit": "b52f4c02e63a76b933b48026687b322ee2353f11",
      "tree": "ab489346c0966c67e62ca6176e0edc6d588202db",
      "parents": [
        "b09d983c78b27362a662ea9ce40e9092d5678bd0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 18:19:38 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 18:19:38 2013 +0200"
      },
      "message": "updated for version 7.3.991\nProblem:    More can be shared by Python 2 and 3.\nSolution:   Move more stuff to if_py_both. (ZyX)\n"
    },
    {
      "commit": "d620aa9be4d574627c020dedd39313f8482ab216",
      "tree": "624b63e85141e01e5ac4c3b200a842f4719e6d6e",
      "parents": [
        "cfef5ff23ea09b17203d9f466f6f3526c76a8b99"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 17 16:40:06 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 17 16:40:06 2013 +0200"
      },
      "message": "updated for version 7.3.966\nProblem:    There is \":py3do\" but no \":pydo\".\nSolution:   Add the \":pydo\" command. (Lilydjwg)\n"
    },
    {
      "commit": "cabf80ff2f20ff6e7da237daf8c2a0cc358592eb",
      "tree": "55c18c253da96281fc7a8612e349094facb300b8",
      "parents": [
        "105bc355a6713b5c09b52776bf8f92a15a81f49c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 17 16:18:33 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 17 16:18:33 2013 +0200"
      },
      "message": "updated for version 7.3.964\nProblem:    Python: not so easy to access tab pages.\nSolution:   Add window.tabpage, make window.number work with non-current tab\n            pages. (ZyX)\n"
    },
    {
      "commit": "71700b8903a8ccd172ae739f53520b59fc153bca",
      "tree": "962e55687d43f70d0f5c4b0f226db3cb523f4d8c",
      "parents": [
        "a4720019cfca02fa0c04358daa562334bb716d57"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 17:49:05 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 17:49:05 2013 +0200"
      },
      "message": "updated for version 7.3.956\nProblem:    Python vim.bindeval() causes SIGABRT.\nSolution:   Make pygilstate a local variable. (Yukihiro Nakadaira)\n"
    },
    {
      "commit": "d5f729cada4129ceb8296b86390c38021684c75f",
      "tree": "a970a59306199cd8d205ee490e01d3f7e3172fac",
      "parents": [
        "e761459eb69597ee4099cf384b69d6f94b2ab8f0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 16:04:40 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 16:04:40 2013 +0200"
      },
      "message": "updated for version 7.3.953\nProblem:    Python: string exceptions are deprecated.\nSolution:   Make vim.error an Exception subclass. (ZyX)\n"
    },
    {
      "commit": "8661b17843d95866dedfa0f4fbfec2278ee010be",
      "tree": "e0de67a475e37adf3254859a9b3e870970ce50ec",
      "parents": [
        "4d188da22bc42b58ed66746c8d6235616214e55f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 15:44:28 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 15:44:28 2013 +0200"
      },
      "message": "updated for version 7.3.951\nProblem:    Python exceptions have problems.\nSolution:   Change some IndexErrors to TypeErrors. Make “line number out of\n            range” an IndexError.  Make “unable to get option value” a\n            RuntimeError. Make all PyErr_SetString messages start with\n            lowercase letter and use _(). (ZyX)\n"
    },
    {
      "commit": "4d188da22bc42b58ed66746c8d6235616214e55f",
      "tree": "e8c93bef490ad575b47925682fc16a1b46a34855",
      "parents": [
        "5e538ecd5e68b90f630be7bb177ab64e1285e40b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 15:35:09 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 15:35:09 2013 +0200"
      },
      "message": "updated for version 7.3.950\nProblem:    Python: Stack trace printer can\u0027t handle messages.\nSolution:   Make KeyErrors use PyErr_SetObject. (ZyX)\n"
    },
    {
      "commit": "5e538ecd5e68b90f630be7bb177ab64e1285e40b",
      "tree": "a2de7e503d39d22f9edb40253bb8cfb15d6f9a8e",
      "parents": [
        "03db85b398746a252345ed8a7da69f0f2591e932"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 15:12:29 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 15:12:29 2013 +0200"
      },
      "message": "updated for version 7.3.949\nProblem:    Python: no easy access to tabpages.\nSolution:   Add vim.tabpages and vim.current.tabpage. (ZyX)\n"
    },
    {
      "commit": "03db85b398746a252345ed8a7da69f0f2591e932",
      "tree": "7ed0344aa301a35ff620990e64264250182e06fd",
      "parents": [
        "b6c589a529bc8c5720477494696c6f69fe457475"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 14:51:35 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 14:51:35 2013 +0200"
      },
      "message": "updated for version 7.3.948\nProblem:    Cannot build with Python 2.2\nSolution:   Make Python interface work with Python 2.2\n            Make 2.2 the first supported version. (ZyX)\n"
    },
    {
      "commit": "b6c589a529bc8c5720477494696c6f69fe457475",
      "tree": "fa6f512190cb15fa5a0a3186312ede6115881e61",
      "parents": [
        "46a7561f3a151fefc469225d41822dd0be292f98"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 14:39:52 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 14:39:52 2013 +0200"
      },
      "message": "updated for version 7.3.947\nProblem:    Python: No iterator for vim.list and vim.bufferlist.\nSolution:   Add the iterators. Also fix name of FunctionType. Add tests for\n            vim.buffers.  (ZyX)\n"
    },
    {
      "commit": "dfa38d4e45a4a64c6b2a84c1d4c91b153f43a86d",
      "tree": "a60f495de869a13fde8cdf7cabd2ad977f9da521",
      "parents": [
        "29607acff640183682cd4ecb6c65985a7897bd51"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 13:38:47 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 13:38:47 2013 +0200"
      },
      "message": "updated for version 7.3.945\nProblem:    Python: List of buffers is not very useful.\nSolution:   Make vim.buffers a map. No iterator yet. (ZyX)\n"
    },
    {
      "commit": "8f1723de4735e437b4ced3be95d6582e713c3d7d",
      "tree": "b8e71cbe3ac73cc19ceee047a8bdd3d10d37b1a3",
      "parents": [
        "3d0c52db9c3e2019bc5fe84debe59c042c3da20b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 12 20:36:14 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 12 20:36:14 2013 +0200"
      },
      "message": "updated for version 7.3.942\nProblem:    Python: SEGV in Buffer functions.\nSolution:   Call CheckBuffer() at the right time. (ZyX)\n"
    },
    {
      "commit": "3d0c52db9c3e2019bc5fe84debe59c042c3da20b",
      "tree": "b6e0c7cedc241b822a9aedd044ed3c0ba9cf1d62",
      "parents": [
        "4e5dfb57002513735b771942492d6b03e137605a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 12 19:45:35 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 12 19:45:35 2013 +0200"
      },
      "message": "updated for version 7.3.941\nProblem:    Stuff in if_py_both.h is ordered badly.\nSolution:   Reorder by type. (ZyX)\n"
    },
    {
      "commit": "971db4679940fd2f06733e8a1513215f9e1943a4",
      "tree": "566ecdc2f8d5cb86bc82160c190c20765da589ee",
      "parents": [
        "3b9abb6cc20d3077b6fd239fb59dee8c75fa599b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 12 18:44:48 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 12 18:44:48 2013 +0200"
      },
      "message": "updated for version 7.3.937\nProblem:    More can be shared between Python 2 and 3.\nSolution:   Move code to if_py_both.h. (ZyX)\n"
    },
    {
      "commit": "84a05acc8c341c2be383198496764992ae971a46",
      "tree": "061887e2e1327a2d0c688cba306b8ec66b3f8477",
      "parents": [
        "84e0f6ca9adcbdca254060713878ebc29faaaa65"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 06 04:24:17 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 06 04:24:17 2013 +0200"
      },
      "message": "updated for version 7.3.925\nProblem:    Typos in source files.\nSolution:   Fix the typos. (Ken Takata)\n"
    },
    {
      "commit": "84e0f6ca9adcbdca254060713878ebc29faaaa65",
      "tree": "3025211efa4e5c1d9f48e9f369ecd786713b6c69",
      "parents": [
        "d1864597a0d87fa9b3fbd09fc022b3405be7f274"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 06 03:52:55 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 06 03:52:55 2013 +0200"
      },
      "message": "updated for version 7.3.924\nProblem:    Python interface can\u0027t easily access options.\nSolution:   Add vim.options, vim.window.options and vim.buffer.options. (ZyX)\n"
    },
    {
      "commit": "230bb3f09d1661cb8da3ef64406270bd3e61aae3",
      "tree": "9c493ef3d30ffc39af2a540fa14bd64b563351b3",
      "parents": [
        "335e0b69744ededb907fb9167f72ac84e37e1304"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 24 14:07:45 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 24 14:07:45 2013 +0200"
      },
      "message": "updated for version 7.3.911\nProblem:    Python: Access to Vim variables is not so easy.\nSolution:   Define vim.vars and vim.vvars. (ZyX)\n"
    },
    {
      "commit": "335e0b69744ededb907fb9167f72ac84e37e1304",
      "tree": "32bfacea7b64cb829c456f1ad1eebe4efbee985c",
      "parents": [
        "4d1da49cfe2528474dafb0535dd0cab19c3c3579"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 24 13:47:45 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 24 13:47:45 2013 +0200"
      },
      "message": "updated for version 7.3.910\nProblem:    Python code in #ifdef branches with only minor differences.\nSolution:   Merge the #ifdef branches. (ZyX)\n"
    },
    {
      "commit": "4d1da49cfe2528474dafb0535dd0cab19c3c3579",
      "tree": "17059da73c94d39ff40c2b826dcbde03ff3eabdb",
      "parents": [
        "7a26dd860a1c666233574edc1b96f721f214067f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 24 13:39:15 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 24 13:39:15 2013 +0200"
      },
      "message": "updated for version 7.3.909\nProblem:    Duplicate Python code.\nSolution:   Move more items to if_py_both.h. (ZyX)  Also avoid compiler\n            warnings for missing initializers.\n"
    },
    {
      "commit": "af6abb9d93959d801d40a2d77a96962cef2335fc",
      "tree": "2a4c39066970fd372b41b351535429df0f6e3b31",
      "parents": [
        "3f99152276def2b8f88a3dd5f87f645e9e875da2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 24 13:04:26 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 24 13:04:26 2013 +0200"
      },
      "message": "updated for version 7.3.907\nProblem:    Python uses IndexError when a dict key is not found.\nSolution:   Use KeyError instead. (ZyX)\n"
    },
    {
      "commit": "4d36987c254b820ebfaf98957c0ae5182db0508e",
      "tree": "fd782ba208cffa25589f4614a0252445517096f9",
      "parents": [
        "2142e5d85112f37e68374c81612d6277c6aaaf0b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 20 16:09:43 2013 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 20 16:09:43 2013 +0100"
      },
      "message": "updated for version 7.3.825\nProblem:    With Python errors are not always clear.\nSolution:   Print the stack trace, unless :silent is used. (ZyX)\n"
    },
    {
      "commit": "76d711c3b5397b749a67d229150d3c1ff3f33add",
      "tree": "ca5c0745ab1f3995faacee77be1bf4369ae4765d",
      "parents": [
        "51971b33988e590901b9f6ad14a5a36f276afd0b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 13 14:17:08 2013 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 13 14:17:08 2013 +0100"
      },
      "message": "updated for version 7.3.808\nProblem:    Python threads still do not work properly.\nSolution:   Fix both Python 2 and 3.  Add tests. (Ken Takata)\n"
    },
    {
      "commit": "02366255c9bd16120c5025106f7ac5d5a06774d7",
      "tree": "0f2da4133e8b3544143630621bf1fc84d387a735",
      "parents": [
        "2f315ab7bec2713d2fb986c5d863f15ab9949166"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 30 11:44:39 2013 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 30 11:44:39 2013 +0100"
      },
      "message": "updated for version 7.3.786\nProblem:    Python threads don\u0027t run in the background (issue 103).\nSolution:   Move the statements to manipulate thread state.\n"
    },
    {
      "commit": "003d14a26771bf7d2c05013cd2fd9d2622f373b9",
      "tree": "45e175aff33fa0eefe1aeded6b75c37abccbf4b4",
      "parents": [
        "c4b98fbb3ea881621d051f84d67609f6789880bc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 21 01:47:00 2012 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 21 01:47:00 2012 +0200"
      },
      "message": "updated for version 7.3.698\nProblem:    Python 3 does not preserve state beween commands.\nSolution:   Preserve the state. (Paul Ollis)\n"
    },
    {
      "commit": "b88adbf844612281d3ed11166bbf03368f7ed704",
      "tree": "d6d9dacf4d3451f85c7ad6bfe667c843900111be",
      "parents": [
        "dac7569612d4088084ef81dfc32c3bb86aec090f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 14 05:20:12 2012 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 14 05:20:12 2012 +0200"
      },
      "message": "updated for version 7.3.691\nProblem:    State specific to the Python thread is discarded.\nSolution:   Keep state between threads. (Paul)\n"
    },
    {
      "commit": "66b7985ec9e4924abc370636077ed33114d0327d",
      "tree": "d3fc6e02af7989af008caade8eff1eb53e5ad52c",
      "parents": [
        "770456589e5e53507fcd32013a190b520f4fc688"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 21 14:00:35 2012 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 21 14:00:35 2012 +0200"
      },
      "message": "updated for version 7.3.672\nProblem:    Not possible to lock/unlock lists in Python interface.\nSolution:   Add .locked and .scope attributes. (ZyX)\n"
    },
    {
      "commit": "770456589e5e53507fcd32013a190b520f4fc688",
      "tree": "1bacd8f17ef1a832cd781507aa469d67b2520573",
      "parents": [
        "696c2116dc5e5403644d7f7dcaea49b83cf5a8f5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 21 13:46:06 2012 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 21 13:46:06 2012 +0200"
      },
      "message": "updated for version 7.3.671\nProblem:    More Python code can be shared between Python 2 and 3.\nSolution:   Move code to if_py_both.h. (ZyX)\n"
    },
    {
      "commit": "e8cdcef87575cacbc9dd977de076af76e4405410",
      "tree": "fad755d283aa655a961f5c9a7ec76b5fe56d0533",
      "parents": [
        "fca93c093e0ec86331171ca4e169f73aa81ebfef"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 12 20:21:43 2012 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 12 20:21:43 2012 +0200"
      },
      "message": "updated for version 7.3.661\nProblem:    SEGV in Python code.\nSolution:   Initialize len to zero.  Use the right function depending on\n            version. (Maxim Philippov)\n"
    },
    {
      "commit": "cdab9051368a6437b7e40df673594147425df751",
      "tree": "79288319fdc749ff595b899a882caeeebf98c474",
      "parents": [
        "77fceb890851e8c97c9d4bbe521dff165455d371"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 05 19:03:56 2012 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 05 19:03:56 2012 +0200"
      },
      "message": "updated for version 7.3.657\nProblem:    Python bindings silently truncate string values containing NUL.\nSolution:   Fail when a string contains NUL. (ZyX)\n"
    },
    {
      "commit": "77fceb890851e8c97c9d4bbe521dff165455d371",
      "tree": "e5f5d88afd7d31aa822a4bd7436ee8feae8df874",
      "parents": [
        "e48a2dd3af920d712305e4225454cb2940fb3312"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 05 18:54:48 2012 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 05 18:54:48 2012 +0200"
      },
      "message": "updated for version 7.3.656\nProblem:    Internal error in :pyeval.\nSolution:   Handle failed object conversion. (ZyX)\n"
    }
  ],
  "next": "221d6872c432842534b302da4670014c29588566"
}
