-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
Copy path_numba_common.h
43 lines (39 loc) · 1.63 KB
/
_numba_common.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#ifndef NUMBA_COMMON_H_
#define NUMBA_COMMON_H_
/* __has_attribute() is a clang / gcc-5 macro */
#ifndef __has_attribute
# define __has_attribute(x) 0
#endif
/* This attribute marks symbols that can be shared across C objects
* but are not exposed outside of a shared library or executable.
* Note this is default behaviour for global symbols under Windows.
*/
#if defined(_MSC_VER)
#define VISIBILITY_HIDDEN
#define VISIBILITY_GLOBAL __declspec(dllexport)
#elif (__has_attribute(visibility) || (defined(__GNUC__) && __GNUC__ >= 4))
#define VISIBILITY_HIDDEN __attribute__ ((visibility("hidden")))
#define VISIBILITY_GLOBAL __attribute__ ((visibility("default")))
#else
#define VISIBILITY_HIDDEN
#define VISIBILITY_GLOBAL
#endif
/*
* Numba's version of the PyArray_DescrCheck macro from NumPy, use it as a
* direct replacement of NumPy's PyArray_DescrCheck to ensure binary
* compatibility.
*
* Details of why this is needed:
* NumPy 1.18 changed the definition of the PyArray_DescrCheck macro here:
* https://github.com/numpy/numpy/commit/6108b5d1e138d07e3c9f2a4e3b1933749ad0e698
* the result of this being that building against NumPy <1.18 would prevent
* Numba running against NumPy >= 1.20 as noted here:
* https://github.com/numba/numba/issues/6041#issuecomment-665132199
*
* This macro definition is copied from:
* https://github.com/numpy/numpy/commit/6108b5d1e138d07e3c9f2a4e3b1933749ad0e698#diff-ad2213da23136c5fc5883d9eb2d88666R26
*
* NOTE: This is the NumPy 1.18 and above version of the macro.
*/
#define NUMBA_PyArray_DescrCheck(op) PyObject_TypeCheck(op, &PyArrayDescr_Type)
#endif /* NUMBA_COMMON_H_ */