Problem: Alloc() returning "char_u *" causes a lot of type casts.
Solution: Have it return "void *". (Mike Williams) Define ALLOC_ONE() to
check the simple allocations.
Problem: Using "int" for alloc() often results in compiler warnings.
Solution: Use "size_t" and remove type casts. Remove alloc_check(), Vim
only works with 32 bit ints anyway.
Problem: Macros for MS-Windows are inconsistent, using "32", "3264 and
others.
Solution: Use MSWIN for all MS-Windows builds. Use FEAT_GUI_MSWIN for the
GUI build. (Hirohito Higashi, closes#3932)
Problem: Giving error messages is not flexible.
Solution: Add semsg(). Change argument from "char_u *" to "char *", also
for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes
#3302) Also make emsg() accept a "char *" argument. Get rid of
an enormous number of type casts.
Problem: Python interface is incompatible with lldb.
Solution: For OutputType set the base to be PyFile_Type. (Boxu Zhang)
Partly disabled to avoid a crash.
Problem: It is difficult to set the python home directory properly for
Python 2.7 and 3.5 since both use $PYTHONHOME.
Solution: Add the 'pythonhome' and 'pythonthreehome' options. (Kazuki
Sakamoto, closes#1266)
Problem: Mac features are confusing.
Solution: Make feature names more consistent, add "osxdarwin". Rename
feature flags, cleanup Mac code. (Kazunobu Kuriyama, closes#2178)
Problem: FEAT_WINDOWS adds a lot of #ifdefs while it is nearly always
enabled and only adds 7% to the binary size of the tiny build.
Solution: Graduate FEAT_WINDOWS.
Problem: When a timer uses ":pyeval" or another Python command and it
happens to be triggered while exiting a Crash may happen.
(Ricky Zhou)
Solution: Avoid running a Python command after python_end() was called.
Do not trigger timers while exiting. (closes#1824)
Problem: It is not so easy to write a script that works with both Python 2
and Python 3, even when the Python code works with both.
Solution: Add 'pyxversion', :pyx, etc. (Marc Weber, Ken Takata)
Problem: Cannot use the "dll" options on MS-Windows.
Solution: Support the options on all platforms. Use the built-in name as
the default, so that it's clear what Vim is looking for.
Problem: Libraries for dynamically loading interfaces can only be defined
at compile time.
Solution: Add options to specify the dll names. (Kazuki Sakamoto,
closes#452)
Problem: For complicated list and dict use the garbage collector can run
out of stack space.
Solution: Use a stack of dicts and lists to be marked, thus making it
iterative instead of recursive. (Ben Fritz)
Problem: Python 3 doesn't handle multibyte characters prooperly when
'encoding' is not utf-8.
Solution: Use PyUnicode_Decode() instead of PyUnicode_FromString(). (Ken
Takata)
Problem: Python: not so easy to delete/restore translating.
Solution: Make macros do translation of exception messages. (ZyX)
Note: this breaks translations!
Problem: Python: various inconsistencies and problems.
Solution: StringToLine now supports both bytes() and unicode() objects.
Make function names consistant. Fix memory leak fixed in
StringToLine. (ZyX)