STINNER Victor <vstin...@redhat.com> added the comment:

Attached PR 14142 fix bpo-34646 regression.

> It shouldn't break existing code because PyRun_String has a macro expansion 
> to PyRun_StringFlags. ABI compatibility between major releases is not 
> provided.

Many applications don't use Python header files, but access directly libpython. 
For example, py2app uses dlsym():
https://bitbucket.org/ronaldoussoren/py2app/src/default/py2app/apptemplate/src/main.c

PyInstaller uses GetProcAddress() on Windows or dlsym() on other platforms:
* 
https://github.com/pyinstaller/pyinstaller/blob/1844d69f5aa1d64d3feca912ed1698664a3faf3e/bootloader/src/pyi_python.h
* 
https://github.com/pyinstaller/pyinstaller/blob/1844d69f5aa1d64d3feca912ed1698664a3faf3e/bootloader/src/pyi_pythonlib.c

That's why PyRun_String() is defined as an alias using a macro *and* as a 
function in pythonrun.c:

#undef PyRun_String
PyObject *
PyRun_String(const char *str, int s, PyObject *g, PyObject *l)
{
    return PyRun_StringFlags(str, s, g, l, NULL);
}

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue37189>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to