[Numpy-tickets] [NumPy] #593: Avoiding polluting public namespace in numpy headers
NumPy
numpy-tickets@scipy....
Wed Oct 17 23:05:06 CDT 2007
#593: Avoiding polluting public namespace in numpy headers
-------------------------+--------------------------------------------------
Reporter: cdavid | Owner: somebody
Type: enhancement | Status: new
Priority: normal | Milestone:
Component: Other | Version: none
Severity: normal | Keywords:
-------------------------+--------------------------------------------------
This patch splits the config.h header into two distinct files:
- one numpyconfig.h, which can be used in public headers
- one config.h, which can NOT be used in public headers (but can be
included in c files).
All symbols in numpyconfig.h are NPY_ prepended: this avoids polluting the
C namespace with symbols such as SIZEOF_* which are often used (most
projects using autotools will define those too, for example). This makes
the numpy headers a bit cleaner, a bit easier to integrate in a autotools-
based project, and is more standard (now, the config.h and numpyconfig.h
follow more stricty autoheader convention). This does not change in any
way the C API, or the behaviour in numpy (it is a bug otherwise).
Within all the symbols declared in config.h, here is the list of the
symbols which are part of the numpy API (e.g. which should stay public):
NPY_NOSIGNAL
NPY_ALLOW_THREADS
CHAR_BITS
All other are kept private (not visible from numpy headers):
SIZEOF_*
HAVE_*
MATHLIB
DISTUTILS_USE_SDK
PyOS_ascii_strtod
For SIZEOF_ symbols, I prepended them by NPY_ in numpyconfig.h (this was
already the case for most of them, though: I just sanitize the header so
that only the prepended symbols are used).
To make the review easier, I implemented this enhancement in a branch
(cleanconfig).
--
Ticket URL: <http://scipy.org/scipy/numpy/ticket/593>
NumPy <http://projects.scipy.org/scipy/numpy>
The fundamental package needed for scientific computing with Python.
More information about the Numpy-tickets
mailing list