)]}'
{
  "log": [
    {
      "commit": "c799fe206e61f2e2c1231bc46cbe4bb354f3da69",
      "tree": "68b3d2a8bb82519e29fc95f317d2ee02b07f95fa",
      "parents": [
        "b58a4b938c4bc7e0499700859bd7abba9acc5b11"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 28 23:08:19 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 28 23:08:19 2019 +0200"
      },
      "message": "patch 8.1.1414: alloc() returning \"char_u *\" causes a lot of type casts\n\nProblem:    Alloc() returning \"char_u *\" causes a lot of type casts.\nSolution:   Have it return \"void *\". (Mike Williams)  Define ALLOC_ONE() to\n            check the simple allocations.\n"
    },
    {
      "commit": "964b3746b9c81e65887e2ac9a335f181db2bb592",
      "tree": "9afaaac41a1c4f71b359fd6706b88df00e22e7a1",
      "parents": [
        "d33a764123a8aedb20cd84aeff3b94810ee67c4c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 24 18:54:09 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 24 18:54:09 2019 +0200"
      },
      "message": "patch 8.1.1384: using \"int\" for alloc() often results in compiler warnings\n\nProblem:    Using \"int\" for alloc() often results in compiler warnings.\nSolution:   Use \"size_t\" and remove type casts.  Remove alloc_check(), Vim\n            only works with 32 bit ints anyway.\n"
    },
    {
      "commit": "abab0b0fdd6535969447b03a4fffc1947918cf6c",
      "tree": "2d43537a5dce8433ef2b2a37684c9e069392c592",
      "parents": [
        "bd9bf266fccbf7b7f09e476e09b61f0133e914db"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 30 18:47:01 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 30 18:47:01 2019 +0100"
      },
      "message": "patch 8.1.1086: too many curly braces\n\nProblem:    Too many curly braces.\nSolution:   Remove curly braces where they are not needed. (Hirohito Higashi,\n            closes #3982)\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": "828bff1f9b4847da79abd7a97ddc48687e257d6c",
      "tree": "286bad3361bbc1b956b0c4201ab448eba098b50e",
      "parents": [
        "4eefe47ea4b6bf958617e924f52bc7a409cfb0ed"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 19 22:11:41 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 19 22:11:41 2019 +0100"
      },
      "message": "patch 8.1.1020: compiler warning for Python3 interface\n\nProblem:    Compiler warning for Python3 interface.\nSolution:   Add type cast. (Ozaki Kiichi, closes #4128, closes #4103)\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": "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": "6dff58f15cede9139b2fcfc64c9064326ea3d3b0",
      "tree": "f2326055f5fe8bb5948374155f11bd220c1d9dc7",
      "parents": [
        "f45d747ebf920940b041f5c75c2bfdffb6b670ae"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 30 21:43:26 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 30 21:43:26 2018 +0200"
      },
      "message": "patch 8.1.0443: unnecessary static function prototypes\n\nProblem:    Unnecessary static function prototypes.\nSolution:   Remove unnecessary prototypes.\n"
    },
    {
      "commit": "3b48b11c07b85520f4ca3566e92c3f6486509b72",
      "tree": "51c37e4be094f9b0666c9fa161b34d4d694d9580",
      "parents": [
        "f0447e89a52885630947510f2d1b55f665a1a20e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 04 22:03:25 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 04 22:03:25 2018 +0200"
      },
      "message": "patch 8.1.0147: compiler warning when building with Python 3.7\n\nProblem:    Compiler warning when building with Python 3.7.\nSolution:   #undef PySlice_GetIndicesEx before redefining it. (Ozaki Kiichi,\n            closes #3153)\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": "2e324950b83fcdf60843b54a6a339183370f338a",
      "tree": "c80a94cf7de8b07ad87c83d2188e83620df86cb0",
      "parents": [
        "78a16b0f2a142aae1fdc96c50ab0f25194d0e755"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 14 14:37:07 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 14 14:37:07 2018 +0200"
      },
      "message": "patch 8.0.1709: some non-C89 code may slip through\n\nProblem:    Some non-C89 code may slip through.\nSolution:   Enforce C89 in configure. Fix detected problems. (James McCoy,\n            closes #2735)\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": "16d7eced1a08565a9837db8067c7b9db5ed68854",
      "tree": "a8f26d8d1bfe4d0d62442682ca394d6ca5e8614c",
      "parents": [
        "75b0a888e41bcda4163072f41bb7b5471fef7651"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 24 14:06:15 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 24 14:06:15 2018 +0100"
      },
      "message": "patch 8.0.1635: undefining _POSIX_THREADS causes problems with Python 3\n\nProblem:    Undefining _POSIX_THREADS causes problems with Python 3. (Micah\n            Bucy, closes #2748)\nSolution:   Remove the lines.\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": "edf3f97ae2af024708ebb4ac614227327033ca47",
      "tree": "82fed9ebfc85a69d3cff613f9dab11c8750fad8b",
      "parents": [
        "965ed14973fd3f1b2aace7bae4d4722b71ca04f9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 29 22:49:24 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 29 22:49:24 2016 +0200"
      },
      "message": "patch 7.4.2293\nProblem:    Modelines in source code are inconsistant.\nSolution:   Use the same line in most files.  Add \u0027noet\u0027.  (Naruhiko Nishino)\n"
    },
    {
      "commit": "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": "92b8b2d307e34117f146319872010b0ccc9d2713",
      "tree": "14592978271f07a5bebd2e7001c2c1f2e7c3a60b",
      "parents": [
        "d25c16e2f2776d50245bf31d6e4d5364f12d188e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 29 22:36:45 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 29 22:36:45 2016 +0100"
      },
      "message": "patch 7.4.1198\nProblem:    Still using __ARGS.\nSolution:   Remove __ARGS in several files. (script by Hirohito Higashi)\n            Also remove use of HAVE_STDARG_H.\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": "094454fa708d3297db744f095cd2b7b155a8b6ad",
      "tree": "2ea8a487dd2621214e1e7cb0a48f3bb3de9a9004",
      "parents": [
        "74b738d414b2895b3365e26ae3b7792eb82ccf47"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 07 10:39:55 2015 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 07 10:39:55 2015 +0200"
      },
      "message": "patch 7.4.890\nProblem:    Build failure when using dynamic python but not python3.\nSolution:   Adjust the #if to also include DYNAMIC_PYTHON3 and UNIX.\n"
    },
    {
      "commit": "b641df49655bb34762b44aa8c6e03e5f464f73d6",
      "tree": "b9800dc3fcfb2c4f7b24167937ad21bb8b1940d5",
      "parents": [
        "016154919e317a8ce2b7f2e33db2f39ca3a8edb9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 03 13:16:04 2015 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 03 13:16:04 2015 +0100"
      },
      "message": "updated for version 7.4.611\nProblem:    Syntax error.\nSolution:   Change statement to return.\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": "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": "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": "e032461eede2a80f184f1c08e22a76eaf18a480e",
      "tree": "b0ca53997ffe6a103c6986305ac6d8506e796689",
      "parents": [
        "b69510e889a1eb102bce83567a7b958d2f25b6ff"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 09 17:30:55 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 09 17:30:55 2013 +0200"
      },
      "message": "updated for version 7.4a.008\nProblem:    Python 3 doesn\u0027t handle multibyte characters prooperly when\n            \u0027encoding\u0027 is not utf-8.\nSolution:   Use PyUnicode_Decode() instead of PyUnicode_FromString(). (Ken\n            Takata)\n"
    },
    {
      "commit": "32ac8cdaaaa32c09b0818c214e01e8e557d88b56",
      "tree": "95d169cbeb3d98450e7991e210ef5be77412f61a",
      "parents": [
        "0f5a5ed8bb3c014ef9de0480852a3e5737c33fc6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 03 18:49:17 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 03 18:49:17 2013 +0200"
      },
      "message": "updated for version 7.3.1299\nProblem:    Errors when doing \"make proto\".  Didn\u0027t do \"make depend\" for a\n            while.\nSolution:   Add #ifdefs.  Update dependencies.  Update proto files.\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": "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": "0bd80ccd853ddfa4cc2385b6ceb3b2610245a9ed",
      "tree": "a1df58e6f24ee6e84b6fa024e8a4ea822697f995",
      "parents": [
        "808c2bc8bf435917b792e172a22dc5f8c0e7066a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 23 13:28:17 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 23 13:28:17 2013 +0200"
      },
      "message": "updated for version 7.3.1229\nProblem:    Python: not so easy to delete/restore translating.\nSolution:   Make macros do translation of exception messages. (ZyX)\n            Note: this breaks translations!\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": "5f87b23229b1d5cc5bad4a263e513e72a91fe8ae",
      "tree": "fff36f9d16eb79d5580016a9689097a3a574e679",
      "parents": [
        "b62bcd1e05a00bdacde11c52762cd48f6f0325f0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 13 20:57:50 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 13 20:57:50 2013 +0200"
      },
      "message": "updated for version 7.3.1186\nProblem:    Python 3: test 87 may crash.\nSolution:   Use _PyArg_Parse_SizeT instead of PyArg_Parse. (Jun Takimoto)\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": "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": "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": "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": "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": "182dc4f2abe6ae6fd20a6c089c3adf45c8b1334d",
      "tree": "239bb2494ef19b5ec4ca813320ab733e52dbb9b6",
      "parents": [
        "e64faa6645377b958e7e5f6a273521063312792c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 19:01:55 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 19:01:55 2013 +0200"
      },
      "message": "updated for version 7.3.994\nProblem:    Python: using magic constants.\nSolution:   Use descriptive values for ml_flags. (ZyX)\n"
    },
    {
      "commit": "e64faa6645377b958e7e5f6a273521063312792c",
      "tree": "65e5266ace385bc1a38a5dfdffbb48f6824b9927",
      "parents": [
        "d6e391862c58d7c7494b8c4cc65a4b745d7eafe1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 18:47:21 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 21 18:47:21 2013 +0200"
      },
      "message": "updated for version 7.3.993\nProblem:    Python: Later patch does things slightly differently.\nSolution:   Adjusted argument type changes. (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": "54e8f005815342b9d1f5e92a766eb4783f5ad414",
      "tree": "5a30579510dc55c2371768cac7d4de2ac4171048",
      "parents": [
        "2cd7362e309aa6993ef355a7860fad549f30d239"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 19:44:39 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 19:44:39 2013 +0200"
      },
      "message": "updated for version 7.3.959\nProblem:    Missing error number.\nSolution:   Assign an error number.\n"
    },
    {
      "commit": "3dab2806feefef69a6b614b9d98463bf4d9aa955",
      "tree": "fd39e3d5db8c292761c1bde8fa8f13d26abc690f",
      "parents": [
        "71700b8903a8ccd172ae739f53520b59fc153bca"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 18:28:13 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 15 18:28:13 2013 +0200"
      },
      "message": "updated for version 7.3.957\nProblem:    Python does not have a \"do\" command like Perl or Lua.\nSolution:   Add the \":py3do\" command. (Lilydjwg)\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": "bd80f35bc59442894a4ec56aefb0137cb0a350fa",
      "tree": "b822da2358409f0c5da3b1d2c266c58f5f70a536",
      "parents": [
        "8f1723de4735e437b4ced3be95d6582e713c3d7d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 12 21:16:23 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 12 21:16:23 2013 +0200"
      },
      "message": "updated for version 7.3.943\nProblem:    Python: Negative indices were failing.\nSolution:   Fix negative indices. Add tests. (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": "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": "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": "7854e3abcf71e00d7053603737ed04560fd70115",
      "tree": "e285765b81365c6857d4e39941a32de8665d894a",
      "parents": [
        "c83a44bf8f963ac1b3eb9a4dc76cb9c1a33809b0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Nov 28 15:33:14 2012 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Nov 28 15:33:14 2012 +0100"
      },
      "message": "updated for version 7.3.731\nProblem:    Py3Init_vim() is exported uneccessarily.\nSolution:   Make it static. (Ken Takata)\n"
    },
    {
      "commit": "99a547d3a1d1315a1a20246eb53fc63a306702d6",
      "tree": "e351de9ea0f5e675968c6af54e64179a3ef715b0",
      "parents": [
        "97d62497f51902f404c7dcc72683411df911593e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Nov 20 11:04:35 2012 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Nov 20 11:04:35 2012 +0100"
      },
      "message": "updated for version 7.3.716\nProblem:    Error on exit when using Python 3.\nSolution:   Remove PythonIO_Fini(). (Roland Puntaier)\n"
    },
    {
      "commit": "9c9cbf13511522c05e8cc8d038a858608a158533",
      "tree": "1f3a9527c635485215f52196c202f51161cb5cb1",
      "parents": [
        "12a753a5ca03fe8beddc06201104e785baccb471"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Oct 23 05:17:37 2012 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Oct 23 05:17:37 2012 +0200"
      },
      "message": "updated for version 7.3.711\nProblem:    vim.current.buffer is not available. (lilydjwg)\nSolution:   Use py3_PyUnicode_AsUTF8 instead of py3_PyUnicode_AsUTF8String.\n            (Ken Takata)\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": "7bc4f93c07a1e8b17e7d91f814b9801bd611d569",
      "tree": "3915a71692ce16c0a5116c785894c366a3f45bab",
      "parents": [
        "172ddb60c2401cd24c80a096709226e37592111f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 14 03:22:56 2012 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 14 03:22:56 2012 +0200"
      },
      "message": "updated for version 7.3.688\nProblem:    Python 3.3 is not supported.\nSolution:   Add Python 3.3 support (Ken Takata)\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": "afa6b9af865c18dd865ccf7b804a4645570027bd",
      "tree": "c8f8f1be55f7f585f5290ba87da9f6599899ab31",
      "parents": [
        "cdab9051368a6437b7e40df673594147425df751"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 05 19:09:11 2012 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 05 19:09:11 2012 +0200"
      },
      "message": "updated for version 7.3.658\nProblem:    NUL bytes truncate strings when converted from Python.\nSolution:   Handle truncation as an error. (ZyX)\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"
    }
  ],
  "next": "77fceb890851e8c97c9d4bbe521dff165455d371"
}
