Skip to content

Conversation

@vstinner
Copy link
Member

@vstinnervstinner commented Nov 1, 2018

  • Create Include/pycapi/ subdirectory
  • "make install" now creates $prefix/include/pycapi and copy
    Include/pycapi/* to $prefix/include/pycapi
  • Create Include/pycapi/pycapi_objimpl.h: move objimpl.h code
    surrounded by #ifndef Py_LIMITED_API to pycapi_objimpl.h.
  • objimpl.h includes pycapi/pycapi_objimpl.h

https://bugs.python.org/issue35134

* Create Include/pycapi/ subdirectory * "make install" now creates $prefix/include/pycapi and copy Include/pycapi/* to $prefix/include/pycapi * Create Include/pycapi/pycapi_objimpl.h: move objimpl.h code surrounded by #ifndef Py_LIMITED_API to pycapi_objimpl.h. * objimpl.h includes pycapi/pycapi_objimpl.h
#ifdef__cplusplus
extern"C"{
#endif

Copy link
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wanted to add:

#ifdef Py_LIMITED_API # error "Py_LIMITED_API must not be defined to include this header" #endif 

But this header should be include if Py_LIMITED_API is defined with a value.

Copy link
Contributor

@ncoghlanncoghlanNov 5, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you don't move PyObject_Calloc (because it's in the stable ABI in 3.5+), then you can add that guard to the unstable ABI header.

*/
PyAPI_FUNC(void*) PyObject_Malloc(size_tsize);
#if !defined(Py_LIMITED_API) ||Py_LIMITED_API+0 >= 0x03050000
PyAPI_FUNC(void*) PyObject_Calloc(size_tnelem, size_telsize);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is in the stable API (since version 3.5). It should not be moved.

The same is for other functions, added to the stable API after 3.2.

@vstinner
Copy link
MemberAuthor

I abandon this PR: moving PyObject_Calloc() was wrong, and "pycapi" name is too generic: I created a new PR #10624.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@vstinner@ncoghlan@serhiy-storchaka@the-knights-who-say-ni@bedevere-bot