tl;dr:  To avoid a compatibility problem with Swig, don't upgrade to Python
3.7.

While chasing down the cause of lots of lldb test failures on Windows, I
discovered that there's a compatibility bug with Python 3.7 and Swig 3.0.12.

Python 3.7 tighted up the tp_new API, which SWIG generates calls to.
Specifically, you can see assertion failures for "PyTuple_Check(args)" for
pretty much any invocation of the SBAPI.  (This appears only if you're
using a debug version of Python, because the assertion is in the Python
implementation.)

Swig 4.0 has a fix to satisfy Python's tighter expectation, so I upgraded
to Swig 4.0, but then other problems surfaced (like undefined references to
__swig_getmethods__).

Some context:  https://github.com/swig/swig/issues/1321

So, for now, it looks like we have to stick with Python 3.6/Swig 3.0.12.
_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to