New submission from Thomas Heller: (As requested by email in python-dev I'm reporting this problem)
Some function prototypes in the stable ABI have been changed between Python 3.3 and 3.4. PyObject_CallFunction is an example, the second parameter has been changed from 'char *' to 'const char *', which leads to compiler warnings in my code. I admit that my use case is probably weird, but here we go: I want to embed Python and use the stable ABI (API?) so that I the executable does not have to be recompiled for different Python versions. I want to link dynamically to the Python runtime (loaded with LoadLibrary on Windows). Also I do not want in use python3.dll. To make calling the functions less painful I ended up with the following approach. My executable is compiled with 'Py_BUILD_CORE' defined so that I can *implement* PyObject_CallFunction myself. I have a python-dynload.c file which implements the API functions in this way: #define Py_BUILD_CORE #include <Python.h> HMODULE hPyDLL; /* the module handle of a dynamically loaded python3X.dll */ PyObject *PyObject_CallFunction(PyObject *callable, char *format, ...) { /* implement by forwarding to functions in the dynloaded dll */ } When I compile this code with the Python 3.3 headers, everything is ok. With the Python 3.4 headers, I get source/python-dynload.c(75) : warning C4028: formal parameter 2 different from declaration When I change the second parameter in the function definition to 'const char *format', the situation reverses, compiling with 3.3 gives the warning but 3.4 is ok. ---------- components: Build keywords: 3.3regression messages: 202495 nosy: theller priority: normal severity: normal status: open title: Changed function prototypes in the PEP 384 stable ABI versions: Python 3.3, Python 3.4, Python 3.5 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue19538> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com