WIP: Update of math/py-numpy to 1.16.5

classic Classic list List threaded Threaded
37 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Jeremie Courreges-Anglas-2
On Mon, Mar 09 2020, Stuart Henderson <[hidden email]> wrote:

> On 2020/03/09 10:42, Theo Buehler wrote:
>> On Mon, Jan 13, 2020 at 12:50:32PM +0000, Stuart Henderson wrote:
>> > 2/3 through a bulk build and I see that this breaks scipy (missing symbols,
>> > blas/cblas-related) so needs a bit more work, but I think it's generally
>> > along the right lines.
>>
>> Not sure if this provides any useful clue, but py-numpy doesn't build at
>> all on sparc64 with this diff, also due to missing blas/cblas symbols:
>
> You'll probably see the same on amd64 with USE_LLD=no.

I managed to build scipy with no changes on amd64, so I'm not sure what
the problem is on this arch (did not try with USE_LLD=No).

However I took a look at the issue reported by tb on sparc64.

--8<--
creating /tmp/tmpKcZ0cd/tmp
creating /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd
compile options: '-I/usr/local/include -I/usr/include -c'
cc: /tmp/tmpKcZ0cd/source.c
cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lcblas -o /tmp/tmpKcZ0cd/a.out
/usr/local/lib/libcblas.so.1.0: undefined reference to `ztbsv_'
/usr/local/lib/libcblas.so.1.0: undefined reference to `dasum_'

[...]

/usr/local/lib/libcblas.so.1.0: undefined reference to `zsymm_'
/usr/local/lib/libcblas.so.1.0: undefined reference to `ztrsm_'
/usr/local/lib/libcblas.so.1.0: undefined reference to `sswap_'
collect2: error: ld returned 1 exit status
cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lblas -o /tmp/tmpKcZ0cd/a.out
/tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o: In function `main':
source.c:(.text.startup+0xdc): undefined reference to `cblas_ddot'
collect2: error: ld returned 1 exit status
-->8--

libcblas.so doesn't depend on libblas.so so missing symbols are to be
expected if one links with -lcblas instead of -lcblas -lblas.  The
second linking test fails because libblas.so doesn't provide cblas
symbols.

I think the way forward is to make libcblas.so depend on libblas.so
(this is what you get eg on Debian).  It would probably make sense to do
the same with lapack.

With the following cblas diff I can build py-numpy-1.16.5 on amd64 and
sparc64.  cc'ing Steven.

ok?


Index: Makefile
===================================================================
RCS file: /cvs/ports/math/cblas/Makefile,v
retrieving revision 1.20
diff -u -p -r1.20 Makefile
--- Makefile 12 Jul 2019 20:47:40 -0000 1.20
+++ Makefile 10 Mar 2020 16:53:46 -0000
@@ -5,8 +5,8 @@ COMMENT= C interface to the BLAS library
 VERSION= 1.0
 DISTNAME= cblas
 PKGNAME= ${DISTNAME}-${VERSION}
-REVISION= 6
-SHARED_LIBS= cblas 1.0
+REVISION= 7
+SHARED_LIBS= cblas 1.1
 
 CATEGORIES= math
 
Index: files/Makefile
===================================================================
RCS file: /cvs/ports/math/cblas/files/Makefile,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 Makefile
--- files/Makefile 2 Oct 2006 21:58:25 -0000 1.1.1.1
+++ files/Makefile 10 Mar 2020 16:53:46 -0000
@@ -42,5 +42,6 @@ cblas_dgemm.c       cblas_sdsdot.c      
 cblas_dgemv.c       cblas_sgbmv.c       cblas_zhemv.c \
 cblas_dger.c        cblas_sgemm.c       cblas_zher.c \
 cblas_dnrm2.c       cblas_sgemv.c       cblas_zher2.c
+LDADD=-lblas -lgfortran
 
 .include <bsd.lib.mk>
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/math/cblas/pkg/PLIST,v
retrieving revision 1.4
diff -u -p -r1.4 PLIST
--- pkg/PLIST 16 Mar 2015 18:07:49 -0000 1.4
+++ pkg/PLIST 10 Mar 2020 16:53:46 -0000
@@ -1,6 +1,6 @@
 @comment $OpenBSD: PLIST,v 1.4 2015/03/16 18:07:49 naddy Exp $
 include/cblas.h
 include/cblas_f77.h
-lib/libcblas.a
+@static-lib lib/libcblas.a
 @lib lib/libcblas.so.${LIBcblas_VERSION}
-lib/libcblas_p.a
+@static-lib lib/libcblas_p.a


--
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Jeremie Courreges-Anglas-2
On Tue, Mar 10 2020, Jeremie Courreges-Anglas <[hidden email]> wrote:

> On Mon, Mar 09 2020, Stuart Henderson <[hidden email]> wrote:
>> On 2020/03/09 10:42, Theo Buehler wrote:
>>> On Mon, Jan 13, 2020 at 12:50:32PM +0000, Stuart Henderson wrote:
>>> > 2/3 through a bulk build and I see that this breaks scipy (missing symbols,
>>> > blas/cblas-related) so needs a bit more work, but I think it's generally
>>> > along the right lines.
>>>
>>> Not sure if this provides any useful clue, but py-numpy doesn't build at
>>> all on sparc64 with this diff, also due to missing blas/cblas symbols:
>>
>> You'll probably see the same on amd64 with USE_LLD=no.
>
> I managed to build scipy with no changes on amd64, so I'm not sure what
> the problem is on this arch (did not try with USE_LLD=No).
>
> However I took a look at the issue reported by tb on sparc64.
>
> --8<--
> creating /tmp/tmpKcZ0cd/tmp
> creating /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd
> compile options: '-I/usr/local/include -I/usr/include -c'
> cc: /tmp/tmpKcZ0cd/source.c
> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lcblas -o /tmp/tmpKcZ0cd/a.out
> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztbsv_'
> /usr/local/lib/libcblas.so.1.0: undefined reference to `dasum_'
>
> [...]
>
> /usr/local/lib/libcblas.so.1.0: undefined reference to `zsymm_'
> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztrsm_'
> /usr/local/lib/libcblas.so.1.0: undefined reference to `sswap_'
> collect2: error: ld returned 1 exit status
> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lblas -o /tmp/tmpKcZ0cd/a.out
> /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o: In function `main':
> source.c:(.text.startup+0xdc): undefined reference to `cblas_ddot'
> collect2: error: ld returned 1 exit status
> -->8--
>
> libcblas.so doesn't depend on libblas.so so missing symbols are to be
> expected if one links with -lcblas instead of -lcblas -lblas.  The
> second linking test fails because libblas.so doesn't provide cblas
> symbols.
>
> I think the way forward is to make libcblas.so depend on libblas.so
> (this is what you get eg on Debian).  It would probably make sense to do
> the same with lapack.
>
> With the following cblas diff I can build py-numpy-1.16.5 on amd64 and
> sparc64.  cc'ing Steven.
>
> ok?

Here's an updated diff for numpy-1.16.5, for convenience I decided to
drop the hard requirements I had on cblas>=1.1 (WANTLIB) /
math/cblas>=1.0p7 (LIB_DEPENDS).


Index: Makefile
===================================================================
RCS file: /cvs/ports/math/py-numpy/Makefile,v
retrieving revision 1.57
diff -u -p -r1.57 Makefile
--- Makefile 10 Mar 2020 03:31:45 -0000 1.57
+++ Makefile 10 Mar 2020 17:06:13 -0000
@@ -2,11 +2,10 @@
 
 COMMENT= fast array and numeric programming library for Python
 
-MODPY_EGG_VERSION= 1.14.6
+MODPY_EGG_VERSION= 1.16.5
 DISTNAME= numpy-${MODPY_EGG_VERSION}
 PKGNAME= py-${DISTNAME}
 EXTRACT_SUFX= .zip
-REVISION= 2
 
 CATEGORIES= math devel
 
@@ -15,7 +14,8 @@ HOMEPAGE= https://www.numpy.org/
 # BSD
 PERMIT_PACKAGE = Yes
 
-WANTLIB= blas lapack m pthread ${MODFORTRAN_WANTLIB} ${MODPY_WANTLIB}
+WANTLIB += ${MODFORTRAN_WANTLIB} ${MODPY_WANTLIB}
+WANTLIB += blas cblas lapack m pthread
 
 MODULES= lang/python \
  fortran
@@ -27,13 +27,14 @@ MODPY_PI = Yes
 MODPY_SETUPTOOLS= Yes
 MODPY_DISTUTILS_BUILDARGS = --fcompiler=gnu95
 
-TEST_DEPENDS= devel/py-nose${MODPY_FLAVOR} \
- devel/py-tz${MODPY_FLAVOR}
-
+TEST_DEPENDS= ${FULLPKGNAME}:${FULLPKGPATH} \
+ devel/py-test${MODPY_FLAVOR} \
+ devel/py-tz${MODPY_FLAVOR}
 MODFORTRAN_COMPILER = gfortran
 
 BUILD_DEPENDS = ${MODFORTRAN_BUILD_DEPENDS}
-LIB_DEPENDS=            math/lapack \
+LIB_DEPENDS= math/cblas \
+ math/lapack \
  ${MODFORTRAN_LIB_DEPENDS}
 
 # Cython 0.28.* uses __attribute__((optimize("Os"))) which
Index: distinfo
===================================================================
RCS file: /cvs/ports/math/py-numpy/distinfo,v
retrieving revision 1.13
diff -u -p -r1.13 distinfo
--- distinfo 26 Oct 2018 21:09:31 -0000 1.13
+++ distinfo 10 Mar 2020 17:06:13 -0000
@@ -1,2 +1,2 @@
-SHA256 (numpy-1.14.6.zip) = ElDt9vbEPh14I/CWdBa8GCWLsnHcU2KY6w6gCp5FuAo=
-SIZE (numpy-1.14.6.zip) = 4906096
+SHA256 (numpy-1.16.5.zip) = i7RS2U6WSzEiBbDeEjjdcgnaRSNDZTqyFLXWgXgOegw=
+SIZE (numpy-1.16.5.zip) = 5138208
Index: patches/patch-numpy_core_include_numpy_npy_common_h
===================================================================
RCS file: /cvs/ports/math/py-numpy/patches/patch-numpy_core_include_numpy_npy_common_h,v
retrieving revision 1.6
diff -u -p -r1.6 patch-numpy_core_include_numpy_npy_common_h
--- patches/patch-numpy_core_include_numpy_npy_common_h 30 Jun 2018 21:49:33 -0000 1.6
+++ patches/patch-numpy_core_include_numpy_npy_common_h 10 Mar 2020 17:06:13 -0000
@@ -1,13 +1,8 @@
 $OpenBSD: patch-numpy_core_include_numpy_npy_common_h,v 1.6 2018/06/30 21:49:33 daniel Exp $
 
-(1) optimize function attributes were added in gcc 4.4. Apply a fix for the warnings. But
-the next release of numpy should fix this in a better way. See:
-https://github.com/numpy/numpy/issues/5451
+XXX recheck powerpc, is this still needed?
 
-Gets rid of these warnings from the build:
-numpy/core/src/multiarray/lowlevel_strided_loops.c.src:120: warning: 'optimize' attribute directive ignored
-
-(2) py-numpy only checks for expl to determine whether extended-precision
+py-numpy only checks for expl to determine whether extended-precision
 support is present.  since we don't have it yet;  it implements
 it's own.  however, on alpha, powerpc, it declared functions with
 types that conflict with C99 (double for *l), therefore failed.
@@ -15,36 +10,7 @@ types that conflict with C99 (double for
 Index: numpy/core/include/numpy/npy_common.h
 --- numpy/core/include/numpy/npy_common.h.orig
 +++ numpy/core/include/numpy/npy_common.h
-@@ -20,6 +20,7 @@
- #endif
- #endif
-
-+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 4)))
- /*
-  * gcc does not unroll even with -O3
-  * use with care, unrolling on modern cpus rarely speeds things up
-@@ -30,13 +31,20 @@
- #else
- #define NPY_GCC_UNROLL_LOOPS
- #endif
-+#else
-+#define NPY_GCC_UNROLL_LOOPS
-+#endif
-
-+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 4)))
- /* highest gcc optimization level, enabled autovectorizer */
- #ifdef HAVE_ATTRIBUTE_OPTIMIZE_OPT_3
- #define NPY_GCC_OPT_3 __attribute__((optimize("O3")))
- #else
- #define NPY_GCC_OPT_3
- #endif
-+#else
-+#define NPY_GCC_OPT_3
-+#endif
-
- /* compile target attributes */
- #if defined HAVE_ATTRIBUTE_TARGET_AVX && defined HAVE_LINK_AVX
-@@ -336,14 +344,8 @@ typedef unsigned char npy_bool;
+@@ -320,14 +320,8 @@ typedef unsigned char npy_bool;
  #define NPY_FALSE 0
  #define NPY_TRUE 1
 
Index: patches/patch-numpy_distutils_command_build_src_py
===================================================================
RCS file: /cvs/ports/math/py-numpy/patches/patch-numpy_distutils_command_build_src_py,v
retrieving revision 1.3
diff -u -p -r1.3 patch-numpy_distutils_command_build_src_py
--- patches/patch-numpy_distutils_command_build_src_py 30 Jun 2018 21:49:33 -0000 1.3
+++ patches/patch-numpy_distutils_command_build_src_py 10 Mar 2020 17:06:13 -0000
@@ -6,7 +6,7 @@ WRKOBJDIR has a trailing slash)
 Index: numpy/distutils/command/build_src.py
 --- numpy/distutils/command/build_src.py.orig
 +++ numpy/distutils/command/build_src.py
-@@ -372,6 +372,7 @@ class build_src(build_ext.build_ext):
+@@ -370,6 +370,7 @@ class build_src(build_ext.build_ext):
              #    incl_dirs.append(self.build_src)
              build_dir = os.path.join(*([self.build_src]\
                                         +name.split('.')[:-1]))
Index: patches/patch-numpy_distutils_fcompiler_gnu_py
===================================================================
RCS file: /cvs/ports/math/py-numpy/patches/patch-numpy_distutils_fcompiler_gnu_py,v
retrieving revision 1.2
diff -u -p -r1.2 patch-numpy_distutils_fcompiler_gnu_py
--- patches/patch-numpy_distutils_fcompiler_gnu_py 30 Jun 2018 21:49:33 -0000 1.2
+++ patches/patch-numpy_distutils_fcompiler_gnu_py 10 Mar 2020 17:06:13 -0000
@@ -8,7 +8,7 @@ https://github.com/numpy/numpy/issues/54
 Index: numpy/distutils/fcompiler/gnu.py
 --- numpy/distutils/fcompiler/gnu.py.orig
 +++ numpy/distutils/fcompiler/gnu.py
-@@ -237,7 +237,6 @@ class GnuFCompiler(FCompiler):
+@@ -245,7 +245,6 @@ class GnuFCompiler(FCompiler):
              opt = ['-O2']
          else:
              opt = ['-O3']
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/math/py-numpy/pkg/PLIST,v
retrieving revision 1.12
diff -u -p -r1.12 PLIST
--- pkg/PLIST 30 Jun 2018 21:49:33 -0000 1.12
+++ pkg/PLIST 10 Mar 2020 17:06:13 -0000
@@ -1,10 +1,14 @@
 @comment $OpenBSD: PLIST,v 1.12 2018/06/30 21:49:33 daniel Exp $
+@comment bin/f2py
+@comment bin/f2py3
 bin/f2py${MODPY_VERSION}
 lib/python${MODPY_VERSION}/site-packages/numpy/
 lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/
 lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/PKG-INFO
 lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/SOURCES.txt
 lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/dependency_links.txt
+lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/entry_points.txt
+lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/not-zip-safe
 lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/top_level.txt
 lib/python${MODPY_VERSION}/site-packages/numpy/LICENSE.txt
 lib/python${MODPY_VERSION}/site-packages/numpy/__config__.py
@@ -14,8 +18,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}_distributor_init.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}_globals.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}_import_tools.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}add_newdocs.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}_pytesttester.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}conftest.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}ctypeslib.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}dual.${MODPY_PYC_MAGIC_TAG}pyc
@@ -24,8 +27,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}version.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/_distributor_init.py
 lib/python${MODPY_VERSION}/site-packages/numpy/_globals.py
-lib/python${MODPY_VERSION}/site-packages/numpy/_import_tools.py
-lib/python${MODPY_VERSION}/site-packages/numpy/add_newdocs.py
+lib/python${MODPY_VERSION}/site-packages/numpy/_pytesttester.py
 lib/python${MODPY_VERSION}/site-packages/numpy/compat/
 lib/python${MODPY_VERSION}/site-packages/numpy/compat/__init__.py
 ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/numpy/compat/${MODPY_PYCACHE}/
@@ -36,13 +38,22 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/compat/_inspect.py
 lib/python${MODPY_VERSION}/site-packages/numpy/compat/py3k.py
 lib/python${MODPY_VERSION}/site-packages/numpy/compat/setup.py
+lib/python${MODPY_VERSION}/site-packages/numpy/compat/tests/
+lib/python${MODPY_VERSION}/site-packages/numpy/compat/tests/__init__.py
+lib/python${MODPY_VERSION}/site-packages/numpy/compat/tests/test_compat.py
 lib/python${MODPY_VERSION}/site-packages/numpy/conftest.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/
 lib/python${MODPY_VERSION}/site-packages/numpy/core/__init__.py
 ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}/
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_add_newdocs.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_aliased_types.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_dtype.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_dtype_ctypes.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_internal.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_methods.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_string_helpers.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_type_aliases.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}arrayprint.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}cversions.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}defchararray.${MODPY_PYC_MAGIC_TAG}pyc
@@ -54,15 +65,31 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}machar.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}memmap.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}multiarray.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}numeric.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}numerictypes.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}overrides.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}records.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}setup_common.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}shape_base.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/core/_dummy.so
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}umath.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}umath_tests.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/_add_newdocs.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/_aliased_types.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/_dtype.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/_dtype_ctypes.py
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_dummy.so
 lib/python${MODPY_VERSION}/site-packages/numpy/core/_internal.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/_methods.py
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_multiarray_tests.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_multiarray_umath.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_operand_flag_tests.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_rational_tests.so
+lib/python${MODPY_VERSION}/site-packages/numpy/core/_string_helpers.py
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_struct_ufunc_tests.so
+lib/python${MODPY_VERSION}/site-packages/numpy/core/_type_aliases.py
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_umath_tests.so
 lib/python${MODPY_VERSION}/site-packages/numpy/core/arrayprint.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/cversions.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/defchararray.py
@@ -101,25 +128,23 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/core/include/numpy/utils.h
 lib/python${MODPY_VERSION}/site-packages/numpy/core/info.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/
-lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/libnpymath.a
+@static-lib lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/libnpymath.a
 lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/npy-pkg-config/
 lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/npy-pkg-config/mlib.ini
 lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/npy-pkg-config/npymath.ini
 lib/python${MODPY_VERSION}/site-packages/numpy/core/machar.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/memmap.py
-lib/python${MODPY_VERSION}/site-packages/numpy/core/multiarray.so
-lib/python${MODPY_VERSION}/site-packages/numpy/core/multiarray_tests.so
+lib/python${MODPY_VERSION}/site-packages/numpy/core/multiarray.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/numeric.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/numerictypes.py
-lib/python${MODPY_VERSION}/site-packages/numpy/core/operand_flag_tests.so
+lib/python${MODPY_VERSION}/site-packages/numpy/core/overrides.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/records.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/setup.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/setup_common.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/shape_base.py
-lib/python${MODPY_VERSION}/site-packages/numpy/core/struct_ufunc_test.so
-lib/python${MODPY_VERSION}/site-packages/numpy/core/test_rational.so
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/__init__.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/_locales.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/data/
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/data/astype_copy.pkl
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/data/recarray_from_file.fits
@@ -147,10 +172,12 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_nditer.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_numeric.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_numerictypes.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_overrides.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_print.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_records.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_regression.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalar_ctors.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalarbuffer.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalarinherit.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalarmath.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalarprint.py
@@ -159,8 +186,8 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_umath.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_umath_complex.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_unicode.py
-lib/python${MODPY_VERSION}/site-packages/numpy/core/umath.so
-lib/python${MODPY_VERSION}/site-packages/numpy/core/umath_tests.so
+lib/python${MODPY_VERSION}/site-packages/numpy/core/umath.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/umath_tests.py
 lib/python${MODPY_VERSION}/site-packages/numpy/ctypeslib.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/__config__.py
@@ -169,12 +196,12 @@ ${MODPY_COMMENT}lib/python${MODPY_VERSIO
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}__config__.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}__version__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}_shell_utils.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}ccompiler.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}compat.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}conv_template.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}core.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}cpuinfo.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}environment.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}exec_command.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}extension.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}from_template.${MODPY_PYC_MAGIC_TAG}pyc
@@ -194,6 +221,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}system_info.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}unixccompiler.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/__version__.py
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/_shell_utils.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/ccompiler.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/command/
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/command/__init__.py
@@ -237,7 +265,6 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/conv_template.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/core.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/cpuinfo.py
-lib/python${MODPY_VERSION}/site-packages/numpy/distutils/environment.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/exec_command.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/extension.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/
@@ -246,6 +273,7 @@ ${MODPY_COMMENT}lib/python${MODPY_VERSIO
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}absoft.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}compaq.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}environment.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}g95.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}gnu.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}hpux.${MODPY_PYC_MAGIC_TAG}pyc
@@ -261,6 +289,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}vast.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/absoft.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/compaq.py
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/environment.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/g95.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/gnu.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/hpux.py
@@ -295,11 +324,14 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/__init__.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_exec_command.py
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_fcompiler.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_fcompiler_gnu.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_fcompiler_intel.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_fcompiler_nagfor.py
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_from_template.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_misc_util.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_npy_pkg_config.py
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_shell_utils.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_system_info.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/unixccompiler.py
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/
@@ -311,6 +343,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}byteswapping.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}constants.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}creation.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}dispatch.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}glossary.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}indexing.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}internals.${MODPY_PYC_MAGIC_TAG}pyc
@@ -323,6 +356,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/byteswapping.py
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/constants.py
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/creation.py
+lib/python${MODPY_VERSION}/site-packages/numpy/doc/dispatch.py
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/glossary.py
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/indexing.py
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/internals.py
@@ -407,15 +441,18 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_block_docstring.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_callback.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_common.py
+lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_compile_function.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_kind.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_mixed.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_parameter.py
+lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_quoted_character.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_regression.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_character.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_complex.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_integer.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_logical.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_real.py
+lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_semicolon_split.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_size.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_string.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/util.py
@@ -429,7 +466,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/fft/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/fft/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/fft/fftpack.py
-lib/python${MODPY_VERSION}/site-packages/numpy/fft/fftpack_lite.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/fft/fftpack_lite.so
 lib/python${MODPY_VERSION}/site-packages/numpy/fft/helper.py
 lib/python${MODPY_VERSION}/site-packages/numpy/fft/info.py
 lib/python${MODPY_VERSION}/site-packages/numpy/fft/setup.py
@@ -450,6 +487,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}financial.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}format.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}function_base.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}histograms.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}index_tricks.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}mixins.${MODPY_PYC_MAGIC_TAG}pyc
@@ -475,6 +513,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/financial.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/format.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/function_base.py
+lib/python${MODPY_VERSION}/site-packages/numpy/lib/histograms.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/index_tricks.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/info.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/mixins.py
@@ -504,6 +543,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_financial.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_format.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_function_base.py
+lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_histograms.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_index_tricks.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_io.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_mixins.py
@@ -530,9 +570,9 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/${MODPY_PYCACHE}linalg.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/linalg/_umath_linalg.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/linalg/_umath_linalg.so
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/info.py
-lib/python${MODPY_VERSION}/site-packages/numpy/linalg/lapack_lite.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/linalg/lapack_lite.so
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/linalg.py
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/setup.py
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/tests/
@@ -582,6 +622,9 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/
 lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/__init__.py
 lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_defmatrix.py
+lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_interaction.py
+lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_masked_matrix.py
+lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_matrix_linalg.py
 lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_multiarray.py
 lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_numeric.py
 lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_regression.py
@@ -625,7 +668,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/random/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/random/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/random/info.py
-lib/python${MODPY_VERSION}/site-packages/numpy/random/mtrand.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/random/mtrand.so
 lib/python${MODPY_VERSION}/site-packages/numpy/random/randomkit.h
 lib/python${MODPY_VERSION}/site-packages/numpy/random/setup.py
 lib/python${MODPY_VERSION}/site-packages/numpy/random/tests/
@@ -643,21 +686,21 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/${MODPY_PYCACHE}print_coercion_tables.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/__init__.py
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}decorators.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}noseclasses.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}nosetester.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}parameterized.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/decorators.py
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/noseclasses.py
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/nosetester.py
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/parameterized.py
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/utils.py
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/decorators.py
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/__init__.py
-${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}/
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}decorators.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}noseclasses.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}nosetester.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}parameterized.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/decorators.py
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/noseclasses.py
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/nosetester.py
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/parameterized.py
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/utils.py
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/noseclasses.py
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/nosetester.py
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/print_coercion_tables.py
@@ -673,6 +716,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_ctypeslib.py
 lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_matlib.py
 lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_numpy_version.py
+lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_public_api.py
 lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_reloading.py
 lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_scripts.py
 lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_warnings.py



--
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Theo Buehler-3
In reply to this post by Jeremie Courreges-Anglas-2
On Tue, Mar 10, 2020 at 06:35:04PM +0100, Jeremie Courreges-Anglas wrote:

> On Mon, Mar 09 2020, Stuart Henderson <[hidden email]> wrote:
> > On 2020/03/09 10:42, Theo Buehler wrote:
> >> On Mon, Jan 13, 2020 at 12:50:32PM +0000, Stuart Henderson wrote:
> >> > 2/3 through a bulk build and I see that this breaks scipy (missing symbols,
> >> > blas/cblas-related) so needs a bit more work, but I think it's generally
> >> > along the right lines.
> >>
> >> Not sure if this provides any useful clue, but py-numpy doesn't build at
> >> all on sparc64 with this diff, also due to missing blas/cblas symbols:
> >
> > You'll probably see the same on amd64 with USE_LLD=no.
>
> I managed to build scipy with no changes on amd64, so I'm not sure what
> the problem is on this arch (did not try with USE_LLD=No).
>
> However I took a look at the issue reported by tb on sparc64.
>
> --8<--
> creating /tmp/tmpKcZ0cd/tmp
> creating /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd
> compile options: '-I/usr/local/include -I/usr/include -c'
> cc: /tmp/tmpKcZ0cd/source.c
> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lcblas -o /tmp/tmpKcZ0cd/a.out
> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztbsv_'
> /usr/local/lib/libcblas.so.1.0: undefined reference to `dasum_'
>
> [...]
>
> /usr/local/lib/libcblas.so.1.0: undefined reference to `zsymm_'
> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztrsm_'
> /usr/local/lib/libcblas.so.1.0: undefined reference to `sswap_'
> collect2: error: ld returned 1 exit status
> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lblas -o /tmp/tmpKcZ0cd/a.out
> /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o: In function `main':
> source.c:(.text.startup+0xdc): undefined reference to `cblas_ddot'
> collect2: error: ld returned 1 exit status
> -->8--
>
> libcblas.so doesn't depend on libblas.so so missing symbols are to be
> expected if one links with -lcblas instead of -lcblas -lblas.  The
> second linking test fails because libblas.so doesn't provide cblas
> symbols.

Thanks, this makes sense. But why does this work with ld.lld?

>
> I think the way forward is to make libcblas.so depend on libblas.so
> (this is what you get eg on Debian).  It would probably make sense to do
> the same with lapack.
>
> With the following cblas diff I can build py-numpy-1.16.5 on amd64 and
> sparc64.  cc'ing Steven.
>
> ok?
>
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/math/cblas/Makefile,v
> retrieving revision 1.20
> diff -u -p -r1.20 Makefile
> --- Makefile 12 Jul 2019 20:47:40 -0000 1.20
> +++ Makefile 10 Mar 2020 16:53:46 -0000
> @@ -5,8 +5,8 @@ COMMENT= C interface to the BLAS library
>  VERSION= 1.0
>  DISTNAME= cblas
>  PKGNAME= ${DISTNAME}-${VERSION}
> -REVISION= 6
> -SHARED_LIBS= cblas 1.0
> +REVISION= 7
> +SHARED_LIBS= cblas 1.1
>  
>  CATEGORIES= math
>  
> Index: files/Makefile
> ===================================================================
> RCS file: /cvs/ports/math/cblas/files/Makefile,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 Makefile
> --- files/Makefile 2 Oct 2006 21:58:25 -0000 1.1.1.1
> +++ files/Makefile 10 Mar 2020 16:53:46 -0000
> @@ -42,5 +42,6 @@ cblas_dgemm.c       cblas_sdsdot.c      
>  cblas_dgemv.c       cblas_sgbmv.c       cblas_zhemv.c \
>  cblas_dger.c        cblas_sgemm.c       cblas_zher.c \
>  cblas_dnrm2.c       cblas_sgemv.c       cblas_zher2.c
> +LDADD=-lblas -lgfortran
>  
>  .include <bsd.lib.mk>
> Index: pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/math/cblas/pkg/PLIST,v
> retrieving revision 1.4
> diff -u -p -r1.4 PLIST
> --- pkg/PLIST 16 Mar 2015 18:07:49 -0000 1.4
> +++ pkg/PLIST 10 Mar 2020 16:53:46 -0000
> @@ -1,6 +1,6 @@
>  @comment $OpenBSD: PLIST,v 1.4 2015/03/16 18:07:49 naddy Exp $
>  include/cblas.h
>  include/cblas_f77.h
> -lib/libcblas.a
> +@static-lib lib/libcblas.a
>  @lib lib/libcblas.so.${LIBcblas_VERSION}
> -lib/libcblas_p.a
> +@static-lib lib/libcblas_p.a
>
>
> --
> jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE
>

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Jeremie Courreges-Anglas-2
On Tue, Mar 10 2020, Theo Buehler <[hidden email]> wrote:

> On Tue, Mar 10, 2020 at 06:35:04PM +0100, Jeremie Courreges-Anglas wrote:
>> On Mon, Mar 09 2020, Stuart Henderson <[hidden email]> wrote:
>> > On 2020/03/09 10:42, Theo Buehler wrote:
>> >> On Mon, Jan 13, 2020 at 12:50:32PM +0000, Stuart Henderson wrote:
>> >> > 2/3 through a bulk build and I see that this breaks scipy (missing symbols,
>> >> > blas/cblas-related) so needs a bit more work, but I think it's generally
>> >> > along the right lines.
>> >>
>> >> Not sure if this provides any useful clue, but py-numpy doesn't build at
>> >> all on sparc64 with this diff, also due to missing blas/cblas symbols:
>> >
>> > You'll probably see the same on amd64 with USE_LLD=no.
>>
>> I managed to build scipy with no changes on amd64, so I'm not sure what
>> the problem is on this arch (did not try with USE_LLD=No).
>>
>> However I took a look at the issue reported by tb on sparc64.
>>
>> --8<--
>> creating /tmp/tmpKcZ0cd/tmp
>> creating /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd
>> compile options: '-I/usr/local/include -I/usr/include -c'
>> cc: /tmp/tmpKcZ0cd/source.c
>> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lcblas -o /tmp/tmpKcZ0cd/a.out
>> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztbsv_'
>> /usr/local/lib/libcblas.so.1.0: undefined reference to `dasum_'
>>
>> [...]
>>
>> /usr/local/lib/libcblas.so.1.0: undefined reference to `zsymm_'
>> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztrsm_'
>> /usr/local/lib/libcblas.so.1.0: undefined reference to `sswap_'
>> collect2: error: ld returned 1 exit status
>> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lblas -o /tmp/tmpKcZ0cd/a.out
>> /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o: In function `main':
>> source.c:(.text.startup+0xdc): undefined reference to `cblas_ddot'
>> collect2: error: ld returned 1 exit status
>> -->8--
>>
>> libcblas.so doesn't depend on libblas.so so missing symbols are to be
>> expected if one links with -lcblas instead of -lcblas -lblas.  The
>> second linking test fails because libblas.so doesn't provide cblas
>> symbols.
>
> Thanks, this makes sense. But why does this work with ld.lld?

ld.lld doesn't bother checking that all symbols in libcblas.so can be
resolved, ld.bfd does.  This means that if you link against a library
that references a bogus symbol or lacks some library interdependency
(DT_NEEDED) you only get a crash at run time.

On amd64, using the testcase from numpy:

--8<--
russell /tmp$ cat r.c
#include <cblas.h>
int main(int argc, const char *argv[])
{
    double a[4] = {1,2,3,4};
    double b[4] = {5,6,7,8};
    return cblas_ddot(4, a, 1, b, 1) > 10;
}
russell /tmp$ cc -I/usr/local/include r.c -L/usr/local/lib -lcblas
russell /tmp$ ./a.out
a.out:/usr/local/lib/libcblas.so.1.0: undefined symbol 'ddot_'
ld.so: a.out: lazy binding failed!
Killed
-->8--

I suspect Stuart hit a similar problem with this numpy update and scipy.

Using -fuse-ld=bfd in the testcase above would result in the same errors
as in your log.

>>
>> I think the way forward is to make libcblas.so depend on libblas.so
>> (this is what you get eg on Debian).  It would probably make sense to do
>> the same with lapack.
>>
>> With the following cblas diff I can build py-numpy-1.16.5 on amd64 and
>> sparc64.  cc'ing Steven.
>>
>> ok?
>>
>>
>> Index: Makefile
>> ===================================================================
>> RCS file: /cvs/ports/math/cblas/Makefile,v
>> retrieving revision 1.20
>> diff -u -p -r1.20 Makefile
>> --- Makefile 12 Jul 2019 20:47:40 -0000 1.20
>> +++ Makefile 10 Mar 2020 16:53:46 -0000
>> @@ -5,8 +5,8 @@ COMMENT= C interface to the BLAS library
>>  VERSION= 1.0
>>  DISTNAME= cblas
>>  PKGNAME= ${DISTNAME}-${VERSION}
>> -REVISION= 6
>> -SHARED_LIBS= cblas 1.0
>> +REVISION= 7
>> +SHARED_LIBS= cblas 1.1
>>  
>>  CATEGORIES= math
>>  
>> Index: files/Makefile
>> ===================================================================
>> RCS file: /cvs/ports/math/cblas/files/Makefile,v
>> retrieving revision 1.1.1.1
>> diff -u -p -r1.1.1.1 Makefile
>> --- files/Makefile 2 Oct 2006 21:58:25 -0000 1.1.1.1
>> +++ files/Makefile 10 Mar 2020 16:53:46 -0000
>> @@ -42,5 +42,6 @@ cblas_dgemm.c       cblas_sdsdot.c      
>>  cblas_dgemv.c       cblas_sgbmv.c       cblas_zhemv.c \
>>  cblas_dger.c        cblas_sgemm.c       cblas_zher.c \
>>  cblas_dnrm2.c       cblas_sgemv.c       cblas_zher2.c
>> +LDADD=-lblas -lgfortran
>>  
>>  .include <bsd.lib.mk>
>> Index: pkg/PLIST
>> ===================================================================
>> RCS file: /cvs/ports/math/cblas/pkg/PLIST,v
>> retrieving revision 1.4
>> diff -u -p -r1.4 PLIST
>> --- pkg/PLIST 16 Mar 2015 18:07:49 -0000 1.4
>> +++ pkg/PLIST 10 Mar 2020 16:53:46 -0000
>> @@ -1,6 +1,6 @@
>>  @comment $OpenBSD: PLIST,v 1.4 2015/03/16 18:07:49 naddy Exp $
>>  include/cblas.h
>>  include/cblas_f77.h
>> -lib/libcblas.a
>> +@static-lib lib/libcblas.a
>>  @lib lib/libcblas.so.${LIBcblas_VERSION}
>> -lib/libcblas_p.a
>> +@static-lib lib/libcblas_p.a
>>
>>
>> --
>> jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE
>>
>

--
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Theo Buehler-3
On Wed, Mar 11, 2020 at 04:12:56AM +0100, Jeremie Courreges-Anglas wrote:

> On Tue, Mar 10 2020, Theo Buehler <[hidden email]> wrote:
> > On Tue, Mar 10, 2020 at 06:35:04PM +0100, Jeremie Courreges-Anglas wrote:
> >> On Mon, Mar 09 2020, Stuart Henderson <[hidden email]> wrote:
> >> > On 2020/03/09 10:42, Theo Buehler wrote:
> >> >> On Mon, Jan 13, 2020 at 12:50:32PM +0000, Stuart Henderson wrote:
> >> >> > 2/3 through a bulk build and I see that this breaks scipy (missing symbols,
> >> >> > blas/cblas-related) so needs a bit more work, but I think it's generally
> >> >> > along the right lines.
> >> >>
> >> >> Not sure if this provides any useful clue, but py-numpy doesn't build at
> >> >> all on sparc64 with this diff, also due to missing blas/cblas symbols:
> >> >
> >> > You'll probably see the same on amd64 with USE_LLD=no.
> >>
> >> I managed to build scipy with no changes on amd64, so I'm not sure what
> >> the problem is on this arch (did not try with USE_LLD=No).
> >>
> >> However I took a look at the issue reported by tb on sparc64.
> >>
> >> --8<--
> >> creating /tmp/tmpKcZ0cd/tmp
> >> creating /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd
> >> compile options: '-I/usr/local/include -I/usr/include -c'
> >> cc: /tmp/tmpKcZ0cd/source.c
> >> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lcblas -o /tmp/tmpKcZ0cd/a.out
> >> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztbsv_'
> >> /usr/local/lib/libcblas.so.1.0: undefined reference to `dasum_'
> >>
> >> [...]
> >>
> >> /usr/local/lib/libcblas.so.1.0: undefined reference to `zsymm_'
> >> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztrsm_'
> >> /usr/local/lib/libcblas.so.1.0: undefined reference to `sswap_'
> >> collect2: error: ld returned 1 exit status
> >> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lblas -o /tmp/tmpKcZ0cd/a.out
> >> /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o: In function `main':
> >> source.c:(.text.startup+0xdc): undefined reference to `cblas_ddot'
> >> collect2: error: ld returned 1 exit status
> >> -->8--
> >>
> >> libcblas.so doesn't depend on libblas.so so missing symbols are to be
> >> expected if one links with -lcblas instead of -lcblas -lblas.  The
> >> second linking test fails because libblas.so doesn't provide cblas
> >> symbols.
> >
> > Thanks, this makes sense. But why does this work with ld.lld?
>
> ld.lld doesn't bother checking that all symbols in libcblas.so can be
> resolved, ld.bfd does.  This means that if you link against a library
> that references a bogus symbol or lacks some library interdependency
> (DT_NEEDED) you only get a crash at run time.
>
> On amd64, using the testcase from numpy:
>
> --8<--
> russell /tmp$ cat r.c
> #include <cblas.h>
> int main(int argc, const char *argv[])
> {
>     double a[4] = {1,2,3,4};
>     double b[4] = {5,6,7,8};
>     return cblas_ddot(4, a, 1, b, 1) > 10;
> }
> russell /tmp$ cc -I/usr/local/include r.c -L/usr/local/lib -lcblas
> russell /tmp$ ./a.out
> a.out:/usr/local/lib/libcblas.so.1.0: undefined symbol 'ddot_'
> ld.so: a.out: lazy binding failed!
> Killed
> -->8--
>
> I suspect Stuart hit a similar problem with this numpy update and scipy.
>
> Using -fuse-ld=bfd in the testcase above would result in the same errors
> as in your log.

I see. Thank you very much for your explanations.

FWIW your cblas diff is ok tb (also tested on macppc).

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Martin Reindl-3
Am 11.03.20 um 18:53 schrieb Theo Buehler:

> On Wed, Mar 11, 2020 at 04:12:56AM +0100, Jeremie Courreges-Anglas wrote:
>> On Tue, Mar 10 2020, Theo Buehler <[hidden email]> wrote:
>>> On Tue, Mar 10, 2020 at 06:35:04PM +0100, Jeremie Courreges-Anglas wrote:
>>>> On Mon, Mar 09 2020, Stuart Henderson <[hidden email]> wrote:
>>>>> On 2020/03/09 10:42, Theo Buehler wrote:
>>>>>> On Mon, Jan 13, 2020 at 12:50:32PM +0000, Stuart Henderson wrote:
>>>>>>> 2/3 through a bulk build and I see that this breaks scipy (missing symbols,
>>>>>>> blas/cblas-related) so needs a bit more work, but I think it's generally
>>>>>>> along the right lines.
>>>>>>
>>>>>> Not sure if this provides any useful clue, but py-numpy doesn't build at
>>>>>> all on sparc64 with this diff, also due to missing blas/cblas symbols:
>>>>>
>>>>> You'll probably see the same on amd64 with USE_LLD=no.
>>>>
>>>> I managed to build scipy with no changes on amd64, so I'm not sure what
>>>> the problem is on this arch (did not try with USE_LLD=No).
>>>>
>>>> However I took a look at the issue reported by tb on sparc64.
>>>>
>>>> --8<--
>>>> creating /tmp/tmpKcZ0cd/tmp
>>>> creating /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd
>>>> compile options: '-I/usr/local/include -I/usr/include -c'
>>>> cc: /tmp/tmpKcZ0cd/source.c
>>>> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lcblas -o /tmp/tmpKcZ0cd/a.out
>>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztbsv_'
>>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `dasum_'
>>>>
>>>> [...]
>>>>
>>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `zsymm_'
>>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztrsm_'
>>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `sswap_'
>>>> collect2: error: ld returned 1 exit status
>>>> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lblas -o /tmp/tmpKcZ0cd/a.out
>>>> /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o: In function `main':
>>>> source.c:(.text.startup+0xdc): undefined reference to `cblas_ddot'
>>>> collect2: error: ld returned 1 exit status
>>>> -->8--
>>>>
>>>> libcblas.so doesn't depend on libblas.so so missing symbols are to be
>>>> expected if one links with -lcblas instead of -lcblas -lblas.  The
>>>> second linking test fails because libblas.so doesn't provide cblas
>>>> symbols.
>>>
>>> Thanks, this makes sense. But why does this work with ld.lld?
>>
>> ld.lld doesn't bother checking that all symbols in libcblas.so can be
>> resolved, ld.bfd does.  This means that if you link against a library
>> that references a bogus symbol or lacks some library interdependency
>> (DT_NEEDED) you only get a crash at run time.
>>
>> On amd64, using the testcase from numpy:
>>
>> --8<--
>> russell /tmp$ cat r.c
>> #include <cblas.h>
>> int main(int argc, const char *argv[])
>> {
>>     double a[4] = {1,2,3,4};
>>     double b[4] = {5,6,7,8};
>>     return cblas_ddot(4, a, 1, b, 1) > 10;
>> }
>> russell /tmp$ cc -I/usr/local/include r.c -L/usr/local/lib -lcblas
>> russell /tmp$ ./a.out
>> a.out:/usr/local/lib/libcblas.so.1.0: undefined symbol 'ddot_'
>> ld.so: a.out: lazy binding failed!
>> Killed
>> -->8--
>>
>> I suspect Stuart hit a similar problem with this numpy update and scipy.
>>
>> Using -fuse-ld=bfd in the testcase above would result in the same errors
>> as in your log.
>
> I see. Thank you very much for your explanations.
>
> FWIW your cblas diff is ok tb (also tested on macppc).
>

Also tested on arm64, with numpy-1.16.6:
42 failed, 7268 passed, 93 skipped, 168 deselected, 12 xfailed, 1
xpassed, 1 warnings

I think this is ready to go into the tree with the cblas diff on top?
The update to 1.16.6 is straightforward if you want to stick to 1.16.5 now.

-m

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Theo Buehler-3
In reply to this post by Jeremie Courreges-Anglas-2
On Fri, Jan 10, 2020 at 04:00:10PM +0000, Stuart Henderson wrote:
[...]
> I also removed part of patch-numpy_core_include_numpy_npy_common_h
> that was dealing with gcc-<4.4 which we don't have to worry about
> (the gfortran module uses gcc for C as well as Fortran, so it will
> always be built with 4.4+ for us). I left the second part in but
> we could do with testing powerpc with that file removed completely
> (I added an XXX).

I believe this second part is still needed. Without it, there are lots
of warnings of this type:

/usr/include/math.h:425:32: note: expected 'long double *' but argument is of type 'npy_longdouble *' {aka 'double *'}


On Tue, Mar 10, 2020 at 06:41:22PM +0100, Jeremie Courreges-Anglas wrote:
[...]
> Here's an updated diff for numpy-1.16.5, for convenience I decided to
> drop the hard requirements I had on cblas>=1.1 (WANTLIB) /
> math/cblas>=1.0p7 (LIB_DEPENDS).

Somebody with a better knowledge of powerpc should probably take a look:
Both flavors build, but the regress tests abort due to a bus error in
the multiarray code between 18% and 19% in (trace below).  This is new.
The 14.0.6 tests only had a handful (9?) unexpected failures (also with
jca@'s cblas diff).


It's probably unrelated, but there are new warnings from dragon4.c that
are of the same kind as the ones fixed by the patch sthen mentioned, e.g.:

numpy/core/src/multiarray/dragon4.c:3160:1: note: in expansion of macro 'make_dragon4_typefuncs'
 make_dragon4_typefuncs(LongDouble, npy_longdouble, NPY_LONGDOUBLE_BINFMT_NAME)
 ^~~~~~~~~~~~~~~~~~~~~~
numpy/core/src/multiarray/dragon4.c:2373:48: note: expected 'npy_float64 *' {aka 'double *'} but argument is of type 'npy_longdouble *' {aka 'long double *'}
         Dragon4_Scratch *scratch, npy_float64 *value, Dragon4_Options *opt)
                                   ~~~~~~~~~~~~~^~~~~


And here's the start of the trace of the bus error during tests. The
python3 version is almost the same.

#0  0xd79f731c in _contig_cast_cfloat_to_cdouble ()
   from /usr/obj/pobj/py-numpy-1.16.5/fake-powerpc/usr/local/lib/python2.7/site-packages/numpy/core/_multiarray_umath.so
#1  0xd797be04 in raw_array_assign_array ()
   from /usr/obj/pobj/py-numpy-1.16.5/fake-powerpc/usr/local/lib/python2.7/site-packages/numpy/core/_multiarray_umath.so
#2  0xd797c55c in PyArray_AssignArray ()
   from /usr/obj/pobj/py-numpy-1.16.5/fake-powerpc/usr/local/lib/python2.7/site-packages/numpy/core/_multiarray_umath.so
#3  0xd798b2bc in PyArray_CastToType ()
   from /usr/obj/pobj/py-numpy-1.16.5/fake-powerpc/usr/local/lib/python2.7/site-packages/numpy/core/_multiarray_umath.so
#4  0xd7aa8908 in PyUFunc_GenericFunction ()
   from /usr/obj/pobj/py-numpy-1.16.5/fake-powerpc/usr/local/lib/python2.7/site-packages/numpy/core/_multiarray_umath.so
#5  0xd7aa9648 in ufunc_generic_call ()
   from /usr/obj/pobj/py-numpy-1.16.5/fake-powerpc/usr/local/lib/python2.7/site-packages/numpy/core/_multiarray_umath.so
#6  0xa9513200 in PyObject_Call () from /usr/local/lib/libpython2.7.so.0.0
#7  0xa9513ca4 in PyObject_CallFunctionObjArgs () from /usr/local/lib/libpython2.7.so.0.0
#8  0xd7a48a00 in PyArray_GenericBinaryFunction ()
   from /usr/obj/pobj/py-numpy-1.16.5/fake-powerpc/usr/local/lib/python2.7/site-packages/numpy/core/_multiarray_umath.so
#9  0xd7a49640 in array_add ()
   from /usr/obj/pobj/py-numpy-1.16.5/fake-powerpc/usr/local/lib/python2.7/site-packages/numpy/core/_multiarray_umath.so
#10 0xa950cfe4 in binary_op1 () from /usr/local/lib/libpython2.7.so.0.0
...

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Paul Irofti-4
In reply to this post by Martin Reindl-3
On Wed, Mar 11, 2020 at 08:58:27PM +0100, Martin Reindl wrote:

> Am 11.03.20 um 18:53 schrieb Theo Buehler:
> > On Wed, Mar 11, 2020 at 04:12:56AM +0100, Jeremie Courreges-Anglas wrote:
> >> On Tue, Mar 10 2020, Theo Buehler <[hidden email]> wrote:
> >>> On Tue, Mar 10, 2020 at 06:35:04PM +0100, Jeremie Courreges-Anglas wrote:
> >>>> On Mon, Mar 09 2020, Stuart Henderson <[hidden email]> wrote:
> >>>>> On 2020/03/09 10:42, Theo Buehler wrote:
> >>>>>> On Mon, Jan 13, 2020 at 12:50:32PM +0000, Stuart Henderson wrote:
> >>>>>>> 2/3 through a bulk build and I see that this breaks scipy (missing symbols,
> >>>>>>> blas/cblas-related) so needs a bit more work, but I think it's generally
> >>>>>>> along the right lines.
> >>>>>>
> >>>>>> Not sure if this provides any useful clue, but py-numpy doesn't build at
> >>>>>> all on sparc64 with this diff, also due to missing blas/cblas symbols:
> >>>>>
> >>>>> You'll probably see the same on amd64 with USE_LLD=no.
> >>>>
> >>>> I managed to build scipy with no changes on amd64, so I'm not sure what
> >>>> the problem is on this arch (did not try with USE_LLD=No).
> >>>>
> >>>> However I took a look at the issue reported by tb on sparc64.
> >>>>
> >>>> --8<--
> >>>> creating /tmp/tmpKcZ0cd/tmp
> >>>> creating /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd
> >>>> compile options: '-I/usr/local/include -I/usr/include -c'
> >>>> cc: /tmp/tmpKcZ0cd/source.c
> >>>> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lcblas -o /tmp/tmpKcZ0cd/a.out
> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztbsv_'
> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `dasum_'
> >>>>
> >>>> [...]
> >>>>
> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `zsymm_'
> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztrsm_'
> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `sswap_'
> >>>> collect2: error: ld returned 1 exit status
> >>>> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lblas -o /tmp/tmpKcZ0cd/a.out
> >>>> /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o: In function `main':
> >>>> source.c:(.text.startup+0xdc): undefined reference to `cblas_ddot'
> >>>> collect2: error: ld returned 1 exit status
> >>>> -->8--
> >>>>
> >>>> libcblas.so doesn't depend on libblas.so so missing symbols are to be
> >>>> expected if one links with -lcblas instead of -lcblas -lblas.  The
> >>>> second linking test fails because libblas.so doesn't provide cblas
> >>>> symbols.
> >>>
> >>> Thanks, this makes sense. But why does this work with ld.lld?
> >>
> >> ld.lld doesn't bother checking that all symbols in libcblas.so can be
> >> resolved, ld.bfd does.  This means that if you link against a library
> >> that references a bogus symbol or lacks some library interdependency
> >> (DT_NEEDED) you only get a crash at run time.
> >>
> >> On amd64, using the testcase from numpy:
> >>
> >> --8<--
> >> russell /tmp$ cat r.c
> >> #include <cblas.h>
> >> int main(int argc, const char *argv[])
> >> {
> >>     double a[4] = {1,2,3,4};
> >>     double b[4] = {5,6,7,8};
> >>     return cblas_ddot(4, a, 1, b, 1) > 10;
> >> }
> >> russell /tmp$ cc -I/usr/local/include r.c -L/usr/local/lib -lcblas
> >> russell /tmp$ ./a.out
> >> a.out:/usr/local/lib/libcblas.so.1.0: undefined symbol 'ddot_'
> >> ld.so: a.out: lazy binding failed!
> >> Killed
> >> -->8--
> >>
> >> I suspect Stuart hit a similar problem with this numpy update and scipy.
> >>
> >> Using -fuse-ld=bfd in the testcase above would result in the same errors
> >> as in your log.
> >
> > I see. Thank you very much for your explanations.
> >
> > FWIW your cblas diff is ok tb (also tested on macppc).
> >
>
> Also tested on arm64, with numpy-1.16.6:
> 42 failed, 7268 passed, 93 skipped, 168 deselected, 12 xfailed, 1
> xpassed, 1 warnings
>
> I think this is ready to go into the tree with the cblas diff on top?
> The update to 1.16.6 is straightforward if you want to stick to 1.16.5 now.

Can you please commit this? Thank you!

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Jeremie Courreges-Anglas-2
On Fri, Mar 13 2020, Paul Irofti <[hidden email]> wrote:

> On Wed, Mar 11, 2020 at 08:58:27PM +0100, Martin Reindl wrote:
>> Am 11.03.20 um 18:53 schrieb Theo Buehler:
>> > On Wed, Mar 11, 2020 at 04:12:56AM +0100, Jeremie Courreges-Anglas wrote:
>> >> On Tue, Mar 10 2020, Theo Buehler <[hidden email]> wrote:
>> >>> On Tue, Mar 10, 2020 at 06:35:04PM +0100, Jeremie Courreges-Anglas wrote:
>> >>>> On Mon, Mar 09 2020, Stuart Henderson <[hidden email]> wrote:
>> >>>>> On 2020/03/09 10:42, Theo Buehler wrote:
>> >>>>>> On Mon, Jan 13, 2020 at 12:50:32PM +0000, Stuart Henderson wrote:
>> >>>>>>> 2/3 through a bulk build and I see that this breaks scipy (missing symbols,
>> >>>>>>> blas/cblas-related) so needs a bit more work, but I think it's generally
>> >>>>>>> along the right lines.
>> >>>>>>
>> >>>>>> Not sure if this provides any useful clue, but py-numpy doesn't build at
>> >>>>>> all on sparc64 with this diff, also due to missing blas/cblas symbols:
>> >>>>>
>> >>>>> You'll probably see the same on amd64 with USE_LLD=no.
>> >>>>
>> >>>> I managed to build scipy with no changes on amd64, so I'm not sure what
>> >>>> the problem is on this arch (did not try with USE_LLD=No).
>> >>>>
>> >>>> However I took a look at the issue reported by tb on sparc64.
>> >>>>
>> >>>> --8<--
>> >>>> creating /tmp/tmpKcZ0cd/tmp
>> >>>> creating /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd
>> >>>> compile options: '-I/usr/local/include -I/usr/include -c'
>> >>>> cc: /tmp/tmpKcZ0cd/source.c
>> >>>> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lcblas -o /tmp/tmpKcZ0cd/a.out
>> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztbsv_'
>> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `dasum_'
>> >>>>
>> >>>> [...]
>> >>>>
>> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `zsymm_'
>> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztrsm_'
>> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `sswap_'
>> >>>> collect2: error: ld returned 1 exit status
>> >>>> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lblas -o /tmp/tmpKcZ0cd/a.out
>> >>>> /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o: In function `main':
>> >>>> source.c:(.text.startup+0xdc): undefined reference to `cblas_ddot'
>> >>>> collect2: error: ld returned 1 exit status
>> >>>> -->8--
>> >>>>
>> >>>> libcblas.so doesn't depend on libblas.so so missing symbols are to be
>> >>>> expected if one links with -lcblas instead of -lcblas -lblas.  The
>> >>>> second linking test fails because libblas.so doesn't provide cblas
>> >>>> symbols.
>> >>>
>> >>> Thanks, this makes sense. But why does this work with ld.lld?
>> >>
>> >> ld.lld doesn't bother checking that all symbols in libcblas.so can be
>> >> resolved, ld.bfd does.  This means that if you link against a library
>> >> that references a bogus symbol or lacks some library interdependency
>> >> (DT_NEEDED) you only get a crash at run time.
>> >>
>> >> On amd64, using the testcase from numpy:
>> >>
>> >> --8<--
>> >> russell /tmp$ cat r.c
>> >> #include <cblas.h>
>> >> int main(int argc, const char *argv[])
>> >> {
>> >>     double a[4] = {1,2,3,4};
>> >>     double b[4] = {5,6,7,8};
>> >>     return cblas_ddot(4, a, 1, b, 1) > 10;
>> >> }
>> >> russell /tmp$ cc -I/usr/local/include r.c -L/usr/local/lib -lcblas
>> >> russell /tmp$ ./a.out
>> >> a.out:/usr/local/lib/libcblas.so.1.0: undefined symbol 'ddot_'
>> >> ld.so: a.out: lazy binding failed!
>> >> Killed
>> >> -->8--
>> >>
>> >> I suspect Stuart hit a similar problem with this numpy update and scipy.
>> >>
>> >> Using -fuse-ld=bfd in the testcase above would result in the same errors
>> >> as in your log.
>> >
>> > I see. Thank you very much for your explanations.
>> >
>> > FWIW your cblas diff is ok tb (also tested on macppc).
>> >
>>
>> Also tested on arm64, with numpy-1.16.6:
>> 42 failed, 7268 passed, 93 skipped, 168 deselected, 12 xfailed, 1
>> xpassed, 1 warnings
>>
>> I think this is ready to go into the tree with the cblas diff on top?
>> The update to 1.16.6 is straightforward if you want to stick to 1.16.5 now.
>
> Can you please commit this? Thank you!

By popular demand I have committed the cblas diff.  I haven't looked
closely at the numpy update, you folks probably know better.

--
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Paul Irofti-4
On Fri, Mar 13, 2020 at 02:40:05PM +0100, Jeremie Courreges-Anglas wrote:

> On Fri, Mar 13 2020, Paul Irofti <[hidden email]> wrote:
> > On Wed, Mar 11, 2020 at 08:58:27PM +0100, Martin Reindl wrote:
> >> Am 11.03.20 um 18:53 schrieb Theo Buehler:
> >> > On Wed, Mar 11, 2020 at 04:12:56AM +0100, Jeremie Courreges-Anglas wrote:
> >> >> On Tue, Mar 10 2020, Theo Buehler <[hidden email]> wrote:
> >> >>> On Tue, Mar 10, 2020 at 06:35:04PM +0100, Jeremie Courreges-Anglas wrote:
> >> >>>> On Mon, Mar 09 2020, Stuart Henderson <[hidden email]> wrote:
> >> >>>>> On 2020/03/09 10:42, Theo Buehler wrote:
> >> >>>>>> On Mon, Jan 13, 2020 at 12:50:32PM +0000, Stuart Henderson wrote:
> >> >>>>>>> 2/3 through a bulk build and I see that this breaks scipy (missing symbols,
> >> >>>>>>> blas/cblas-related) so needs a bit more work, but I think it's generally
> >> >>>>>>> along the right lines.
> >> >>>>>>
> >> >>>>>> Not sure if this provides any useful clue, but py-numpy doesn't build at
> >> >>>>>> all on sparc64 with this diff, also due to missing blas/cblas symbols:
> >> >>>>>
> >> >>>>> You'll probably see the same on amd64 with USE_LLD=no.
> >> >>>>
> >> >>>> I managed to build scipy with no changes on amd64, so I'm not sure what
> >> >>>> the problem is on this arch (did not try with USE_LLD=No).
> >> >>>>
> >> >>>> However I took a look at the issue reported by tb on sparc64.
> >> >>>>
> >> >>>> --8<--
> >> >>>> creating /tmp/tmpKcZ0cd/tmp
> >> >>>> creating /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd
> >> >>>> compile options: '-I/usr/local/include -I/usr/include -c'
> >> >>>> cc: /tmp/tmpKcZ0cd/source.c
> >> >>>> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lcblas -o /tmp/tmpKcZ0cd/a.out
> >> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztbsv_'
> >> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `dasum_'
> >> >>>>
> >> >>>> [...]
> >> >>>>
> >> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `zsymm_'
> >> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `ztrsm_'
> >> >>>> /usr/local/lib/libcblas.so.1.0: undefined reference to `sswap_'
> >> >>>> collect2: error: ld returned 1 exit status
> >> >>>> cc /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o -L/usr/local/lib -lblas -o /tmp/tmpKcZ0cd/a.out
> >> >>>> /tmp/tmpKcZ0cd/tmp/tmpKcZ0cd/source.o: In function `main':
> >> >>>> source.c:(.text.startup+0xdc): undefined reference to `cblas_ddot'
> >> >>>> collect2: error: ld returned 1 exit status
> >> >>>> -->8--
> >> >>>>
> >> >>>> libcblas.so doesn't depend on libblas.so so missing symbols are to be
> >> >>>> expected if one links with -lcblas instead of -lcblas -lblas.  The
> >> >>>> second linking test fails because libblas.so doesn't provide cblas
> >> >>>> symbols.
> >> >>>
> >> >>> Thanks, this makes sense. But why does this work with ld.lld?
> >> >>
> >> >> ld.lld doesn't bother checking that all symbols in libcblas.so can be
> >> >> resolved, ld.bfd does.  This means that if you link against a library
> >> >> that references a bogus symbol or lacks some library interdependency
> >> >> (DT_NEEDED) you only get a crash at run time.
> >> >>
> >> >> On amd64, using the testcase from numpy:
> >> >>
> >> >> --8<--
> >> >> russell /tmp$ cat r.c
> >> >> #include <cblas.h>
> >> >> int main(int argc, const char *argv[])
> >> >> {
> >> >>     double a[4] = {1,2,3,4};
> >> >>     double b[4] = {5,6,7,8};
> >> >>     return cblas_ddot(4, a, 1, b, 1) > 10;
> >> >> }
> >> >> russell /tmp$ cc -I/usr/local/include r.c -L/usr/local/lib -lcblas
> >> >> russell /tmp$ ./a.out
> >> >> a.out:/usr/local/lib/libcblas.so.1.0: undefined symbol 'ddot_'
> >> >> ld.so: a.out: lazy binding failed!
> >> >> Killed
> >> >> -->8--
> >> >>
> >> >> I suspect Stuart hit a similar problem with this numpy update and scipy.
> >> >>
> >> >> Using -fuse-ld=bfd in the testcase above would result in the same errors
> >> >> as in your log.
> >> >
> >> > I see. Thank you very much for your explanations.
> >> >
> >> > FWIW your cblas diff is ok tb (also tested on macppc).
> >> >
> >>
> >> Also tested on arm64, with numpy-1.16.6:
> >> 42 failed, 7268 passed, 93 skipped, 168 deselected, 12 xfailed, 1
> >> xpassed, 1 warnings
> >>
> >> I think this is ready to go into the tree with the cblas diff on top?
> >> The update to 1.16.6 is straightforward if you want to stick to 1.16.5 now.
> >
> > Can you please commit this? Thank you!
>
> By popular demand I have committed the cblas diff.  I haven't looked
> closely at the numpy update, you folks probably know better.

Great, thank you!

Can somenoe commit the numpy update as well then?

Paul

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Stuart Henderson
On 2020/03/24 19:30, Paul Irofti wrote:
> Can somenoe commit the numpy update as well then?

I am about to start a test bulk build on i386 with this.

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Stuart Henderson
On 2020/03/27 12:16, Stuart Henderson wrote:
> On 2020/03/24 19:30, Paul Irofti wrote:
> > Can somenoe commit the numpy update as well then?
>
> I am about to start a test bulk build on i386 with this.

No build problems relating to the numpy update.

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Christian Weisgerber
On 2020-03-28, Stuart Henderson <[hidden email]> wrote:

>> > Can somenoe commit the numpy update as well then?
>>
>> I am about to start a test bulk build on i386 with this.
>
> No build problems relating to the numpy update.

Meanwhile, the existing port (1.14.6p2) errored out in my latest bulk
build:

numpy/core/src/multiarray/temp_elide.c:87:10: fatal error: execinfo.h: No such file or directory
 #include <execinfo.h>
          ^~~~~~~~~~~~
compilation terminated.

Please check that the updated port doesn't haphazardly pick up
execinfo too.

--
Christian "naddy" Weisgerber                          [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Stuart Henderson
On 2020/03/29 11:49, Christian Weisgerber wrote:

> On 2020-03-28, Stuart Henderson <[hidden email]> wrote:
>
> >> > Can somenoe commit the numpy update as well then?
> >>
> >> I am about to start a test bulk build on i386 with this.
> >
> > No build problems relating to the numpy update.
>
> Meanwhile, the existing port (1.14.6p2) errored out in my latest bulk
> build:
>
> numpy/core/src/multiarray/temp_elide.c:87:10: fatal error: execinfo.h: No such file or directory
>  #include <execinfo.h>
>           ^~~~~~~~~~~~
> compilation terminated.
>
> Please check that the updated port doesn't haphazardly pick up
> execinfo too.
>
> --
> Christian "naddy" Weisgerber                          [hidden email]
>

It will need this or an alternative. (Unless we can either get the
backtrace functions into libc, or remove the libexecinfo port ;-)

Index: patches/patch-numpy_core_setup_common_py
===================================================================
RCS file: patches/patch-numpy_core_setup_common_py
diff -N patches/patch-numpy_core_setup_common_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-numpy_core_setup_common_py 29 Mar 2020 14:36:51 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: numpy/core/setup_common.py
+--- numpy/core/setup_common.py.orig
++++ numpy/core/setup_common.py
+@@ -111,7 +111,7 @@ OPTIONAL_STDFUNCS = ["expm1", "log1p", "acosh", "asinh
+         "rint", "trunc", "exp2", "log2", "hypot", "atan2", "pow",
+         "copysign", "nextafter", "ftello", "fseeko",
+         "strtoll", "strtoull", "cbrt", "strtold_l", "fallocate",
+-        "backtrace", "madvise"]
++        "madvise"]
+
+
+ OPTIONAL_HEADERS = [

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Antoine Jacoutot-7
On Sun, Mar 29, 2020 at 03:38:33PM +0100, Stuart Henderson wrote:

> On 2020/03/29 11:49, Christian Weisgerber wrote:
> > On 2020-03-28, Stuart Henderson <[hidden email]> wrote:
> >
> > >> > Can somenoe commit the numpy update as well then?
> > >>
> > >> I am about to start a test bulk build on i386 with this.
> > >
> > > No build problems relating to the numpy update.
> >
> > Meanwhile, the existing port (1.14.6p2) errored out in my latest bulk
> > build:
> >
> > numpy/core/src/multiarray/temp_elide.c:87:10: fatal error: execinfo.h: No such file or directory
> >  #include <execinfo.h>
> >           ^~~~~~~~~~~~
> > compilation terminated.
> >
> > Please check that the updated port doesn't haphazardly pick up
> > execinfo too.
> >
> > --
> > Christian "naddy" Weisgerber                          [hidden email]
> >
>
> It will need this or an alternative. (Unless we can either get the
> backtrace functions into libc, or remove the libexecinfo port ;-)

I would encourage any solution.
What we have now is a total mess :-(

> Index: patches/patch-numpy_core_setup_common_py
> ===================================================================
> RCS file: patches/patch-numpy_core_setup_common_py
> diff -N patches/patch-numpy_core_setup_common_py
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-numpy_core_setup_common_py 29 Mar 2020 14:36:51 -0000
> @@ -0,0 +1,14 @@
> +$OpenBSD$
> +
> +Index: numpy/core/setup_common.py
> +--- numpy/core/setup_common.py.orig
> ++++ numpy/core/setup_common.py
> +@@ -111,7 +111,7 @@ OPTIONAL_STDFUNCS = ["expm1", "log1p", "acosh", "asinh
> +         "rint", "trunc", "exp2", "log2", "hypot", "atan2", "pow",
> +         "copysign", "nextafter", "ftello", "fseeko",
> +         "strtoll", "strtoull", "cbrt", "strtold_l", "fallocate",
> +-        "backtrace", "madvise"]
> ++        "madvise"]
> +
> +
> + OPTIONAL_HEADERS = [
>

--
Antoine

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Paul Irofti-4
In reply to this post by Stuart Henderson
On Sun, Mar 29, 2020 at 03:38:33PM +0100, Stuart Henderson wrote:

> On 2020/03/29 11:49, Christian Weisgerber wrote:
> > On 2020-03-28, Stuart Henderson <[hidden email]> wrote:
> >
> > >> > Can somenoe commit the numpy update as well then?
> > >>
> > >> I am about to start a test bulk build on i386 with this.
> > >
> > > No build problems relating to the numpy update.
> >
> > Meanwhile, the existing port (1.14.6p2) errored out in my latest bulk
> > build:
> >
> > numpy/core/src/multiarray/temp_elide.c:87:10: fatal error: execinfo.h: No such file or directory
> >  #include <execinfo.h>
> >           ^~~~~~~~~~~~
> > compilation terminated.
> >
> > Please check that the updated port doesn't haphazardly pick up
> > execinfo too.
> >
> > --
> > Christian "naddy" Weisgerber                          [hidden email]
> >
>
> It will need this or an alternative. (Unless we can either get the
> backtrace functions into libc, or remove the libexecinfo port ;-)

Here is a final diff that incorporates jca's patch and sthen's. OK?


Index: Makefile
===================================================================
RCS file: /cvs/ports/math/py-numpy/Makefile,v
retrieving revision 1.57
diff -u -p -u -p -r1.57 Makefile
--- Makefile 10 Mar 2020 03:31:45 -0000 1.57
+++ Makefile 1 Apr 2020 18:28:16 -0000
@@ -2,11 +2,10 @@
 
 COMMENT= fast array and numeric programming library for Python
 
-MODPY_EGG_VERSION= 1.14.6
+MODPY_EGG_VERSION= 1.16.5
 DISTNAME= numpy-${MODPY_EGG_VERSION}
 PKGNAME= py-${DISTNAME}
 EXTRACT_SUFX= .zip
-REVISION= 2
 
 CATEGORIES= math devel
 
@@ -15,7 +14,8 @@ HOMEPAGE= https://www.numpy.org/
 # BSD
 PERMIT_PACKAGE = Yes
 
-WANTLIB= blas lapack m pthread ${MODFORTRAN_WANTLIB} ${MODPY_WANTLIB}
+WANTLIB += ${MODFORTRAN_WANTLIB} ${MODPY_WANTLIB}
+WANTLIB += blas cblas lapack m pthread
 
 MODULES= lang/python \
  fortran
@@ -27,13 +27,14 @@ MODPY_PI = Yes
 MODPY_SETUPTOOLS= Yes
 MODPY_DISTUTILS_BUILDARGS = --fcompiler=gnu95
 
-TEST_DEPENDS= devel/py-nose${MODPY_FLAVOR} \
- devel/py-tz${MODPY_FLAVOR}
-
+TEST_DEPENDS= ${FULLPKGNAME}:${FULLPKGPATH} \
+ devel/py-test${MODPY_FLAVOR} \
+ devel/py-tz${MODPY_FLAVOR}
 MODFORTRAN_COMPILER = gfortran
 
 BUILD_DEPENDS = ${MODFORTRAN_BUILD_DEPENDS}
-LIB_DEPENDS=            math/lapack \
+LIB_DEPENDS= math/cblas \
+ math/lapack \
  ${MODFORTRAN_LIB_DEPENDS}
 
 # Cython 0.28.* uses __attribute__((optimize("Os"))) which
@@ -54,7 +55,7 @@ pre-build:
  cp -f ${WRKSRC}/numpy/distutils/site.cfg ${WRKSRC}/site.cfg
 
 do-test:
- cd ${WRKDIR} && ${MAKE_ENV} PYTHONPATH=${WRKINST}${MODPY_SITEPKG} ${MODPY_BIN} -c \
+ cd ${WRKDIR} && ${MAKE_ENV} ${MODPY_BIN} -c \
     'import numpy ; numpy.test()'
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/math/py-numpy/distinfo,v
retrieving revision 1.13
diff -u -p -u -p -r1.13 distinfo
--- distinfo 26 Oct 2018 21:09:31 -0000 1.13
+++ distinfo 1 Apr 2020 18:28:16 -0000
@@ -1,2 +1,2 @@
-SHA256 (numpy-1.14.6.zip) = ElDt9vbEPh14I/CWdBa8GCWLsnHcU2KY6w6gCp5FuAo=
-SIZE (numpy-1.14.6.zip) = 4906096
+SHA256 (numpy-1.16.5.zip) = i7RS2U6WSzEiBbDeEjjdcgnaRSNDZTqyFLXWgXgOegw=
+SIZE (numpy-1.16.5.zip) = 5138208
Index: patches/patch-numpy_core_include_numpy_npy_common_h
===================================================================
RCS file: /cvs/ports/math/py-numpy/patches/patch-numpy_core_include_numpy_npy_common_h,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 patch-numpy_core_include_numpy_npy_common_h
--- patches/patch-numpy_core_include_numpy_npy_common_h 30 Jun 2018 21:49:33 -0000 1.6
+++ patches/patch-numpy_core_include_numpy_npy_common_h 1 Apr 2020 18:28:16 -0000
@@ -1,13 +1,8 @@
 $OpenBSD: patch-numpy_core_include_numpy_npy_common_h,v 1.6 2018/06/30 21:49:33 daniel Exp $
 
-(1) optimize function attributes were added in gcc 4.4. Apply a fix for the warnings. But
-the next release of numpy should fix this in a better way. See:
-https://github.com/numpy/numpy/issues/5451
+XXX recheck powerpc, is this still needed?
 
-Gets rid of these warnings from the build:
-numpy/core/src/multiarray/lowlevel_strided_loops.c.src:120: warning: 'optimize' attribute directive ignored
-
-(2) py-numpy only checks for expl to determine whether extended-precision
+py-numpy only checks for expl to determine whether extended-precision
 support is present.  since we don't have it yet;  it implements
 it's own.  however, on alpha, powerpc, it declared functions with
 types that conflict with C99 (double for *l), therefore failed.
@@ -15,36 +10,7 @@ types that conflict with C99 (double for
 Index: numpy/core/include/numpy/npy_common.h
 --- numpy/core/include/numpy/npy_common.h.orig
 +++ numpy/core/include/numpy/npy_common.h
-@@ -20,6 +20,7 @@
- #endif
- #endif
-
-+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 4)))
- /*
-  * gcc does not unroll even with -O3
-  * use with care, unrolling on modern cpus rarely speeds things up
-@@ -30,13 +31,20 @@
- #else
- #define NPY_GCC_UNROLL_LOOPS
- #endif
-+#else
-+#define NPY_GCC_UNROLL_LOOPS
-+#endif
-
-+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 4)))
- /* highest gcc optimization level, enabled autovectorizer */
- #ifdef HAVE_ATTRIBUTE_OPTIMIZE_OPT_3
- #define NPY_GCC_OPT_3 __attribute__((optimize("O3")))
- #else
- #define NPY_GCC_OPT_3
- #endif
-+#else
-+#define NPY_GCC_OPT_3
-+#endif
-
- /* compile target attributes */
- #if defined HAVE_ATTRIBUTE_TARGET_AVX && defined HAVE_LINK_AVX
-@@ -336,14 +344,8 @@ typedef unsigned char npy_bool;
+@@ -320,14 +320,8 @@ typedef unsigned char npy_bool;
  #define NPY_FALSE 0
  #define NPY_TRUE 1
 
Index: patches/patch-numpy_core_setup_common_py
===================================================================
RCS file: patches/patch-numpy_core_setup_common_py
diff -N patches/patch-numpy_core_setup_common_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-numpy_core_setup_common_py 1 Apr 2020 18:28:16 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: numpy/core/setup_common.py
+--- numpy/core/setup_common.py.orig
++++ numpy/core/setup_common.py
+@@ -111,7 +111,7 @@ OPTIONAL_STDFUNCS = ["expm1", "log1p", "acosh", "asinh
+         "rint", "trunc", "exp2", "log2", "hypot", "atan2", "pow",
+         "copysign", "nextafter", "ftello", "fseeko",
+         "strtoll", "strtoull", "cbrt", "strtold_l", "fallocate",
+-        "backtrace", "madvise"]
++        "madvise"]
+
+
+ OPTIONAL_HEADERS = [
Index: patches/patch-numpy_distutils_command_build_src_py
===================================================================
RCS file: /cvs/ports/math/py-numpy/patches/patch-numpy_distutils_command_build_src_py,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 patch-numpy_distutils_command_build_src_py
--- patches/patch-numpy_distutils_command_build_src_py 30 Jun 2018 21:49:33 -0000 1.3
+++ patches/patch-numpy_distutils_command_build_src_py 1 Apr 2020 18:28:16 -0000
@@ -6,7 +6,7 @@ WRKOBJDIR has a trailing slash)
 Index: numpy/distutils/command/build_src.py
 --- numpy/distutils/command/build_src.py.orig
 +++ numpy/distutils/command/build_src.py
-@@ -372,6 +372,7 @@ class build_src(build_ext.build_ext):
+@@ -370,6 +370,7 @@ class build_src(build_ext.build_ext):
              #    incl_dirs.append(self.build_src)
              build_dir = os.path.join(*([self.build_src]\
                                         +name.split('.')[:-1]))
Index: patches/patch-numpy_distutils_fcompiler_gnu_py
===================================================================
RCS file: /cvs/ports/math/py-numpy/patches/patch-numpy_distutils_fcompiler_gnu_py,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 patch-numpy_distutils_fcompiler_gnu_py
--- patches/patch-numpy_distutils_fcompiler_gnu_py 30 Jun 2018 21:49:33 -0000 1.2
+++ patches/patch-numpy_distutils_fcompiler_gnu_py 1 Apr 2020 18:28:16 -0000
@@ -8,7 +8,7 @@ https://github.com/numpy/numpy/issues/54
 Index: numpy/distutils/fcompiler/gnu.py
 --- numpy/distutils/fcompiler/gnu.py.orig
 +++ numpy/distutils/fcompiler/gnu.py
-@@ -237,7 +237,6 @@ class GnuFCompiler(FCompiler):
+@@ -245,7 +245,6 @@ class GnuFCompiler(FCompiler):
              opt = ['-O2']
          else:
              opt = ['-O3']
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/math/py-numpy/pkg/PLIST,v
retrieving revision 1.12
diff -u -p -u -p -r1.12 PLIST
--- pkg/PLIST 30 Jun 2018 21:49:33 -0000 1.12
+++ pkg/PLIST 1 Apr 2020 18:28:17 -0000
@@ -1,10 +1,14 @@
 @comment $OpenBSD: PLIST,v 1.12 2018/06/30 21:49:33 daniel Exp $
+@comment bin/f2py
+@comment bin/f2py3
 bin/f2py${MODPY_VERSION}
 lib/python${MODPY_VERSION}/site-packages/numpy/
 lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/
 lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/PKG-INFO
 lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/SOURCES.txt
 lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/dependency_links.txt
+lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/entry_points.txt
+lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/not-zip-safe
 lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/top_level.txt
 lib/python${MODPY_VERSION}/site-packages/numpy/LICENSE.txt
 lib/python${MODPY_VERSION}/site-packages/numpy/__config__.py
@@ -14,8 +18,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}_distributor_init.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}_globals.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}_import_tools.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}add_newdocs.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}_pytesttester.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}conftest.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}ctypeslib.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}dual.${MODPY_PYC_MAGIC_TAG}pyc
@@ -24,8 +27,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}version.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/_distributor_init.py
 lib/python${MODPY_VERSION}/site-packages/numpy/_globals.py
-lib/python${MODPY_VERSION}/site-packages/numpy/_import_tools.py
-lib/python${MODPY_VERSION}/site-packages/numpy/add_newdocs.py
+lib/python${MODPY_VERSION}/site-packages/numpy/_pytesttester.py
 lib/python${MODPY_VERSION}/site-packages/numpy/compat/
 lib/python${MODPY_VERSION}/site-packages/numpy/compat/__init__.py
 ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/numpy/compat/${MODPY_PYCACHE}/
@@ -36,13 +38,22 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/compat/_inspect.py
 lib/python${MODPY_VERSION}/site-packages/numpy/compat/py3k.py
 lib/python${MODPY_VERSION}/site-packages/numpy/compat/setup.py
+lib/python${MODPY_VERSION}/site-packages/numpy/compat/tests/
+lib/python${MODPY_VERSION}/site-packages/numpy/compat/tests/__init__.py
+lib/python${MODPY_VERSION}/site-packages/numpy/compat/tests/test_compat.py
 lib/python${MODPY_VERSION}/site-packages/numpy/conftest.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/
 lib/python${MODPY_VERSION}/site-packages/numpy/core/__init__.py
 ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}/
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_add_newdocs.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_aliased_types.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_dtype.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_dtype_ctypes.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_internal.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_methods.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_string_helpers.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_type_aliases.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}arrayprint.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}cversions.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}defchararray.${MODPY_PYC_MAGIC_TAG}pyc
@@ -54,15 +65,31 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}machar.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}memmap.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}multiarray.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}numeric.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}numerictypes.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}overrides.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}records.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}setup_common.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}shape_base.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/core/_dummy.so
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}umath.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}umath_tests.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/core/_add_newdocs.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/_aliased_types.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/_dtype.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/_dtype_ctypes.py
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_dummy.so
 lib/python${MODPY_VERSION}/site-packages/numpy/core/_internal.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/_methods.py
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_multiarray_tests.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_multiarray_umath.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_operand_flag_tests.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_rational_tests.so
+lib/python${MODPY_VERSION}/site-packages/numpy/core/_string_helpers.py
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_struct_ufunc_tests.so
+lib/python${MODPY_VERSION}/site-packages/numpy/core/_type_aliases.py
+@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_umath_tests.so
 lib/python${MODPY_VERSION}/site-packages/numpy/core/arrayprint.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/cversions.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/defchararray.py
@@ -101,25 +128,23 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/core/include/numpy/utils.h
 lib/python${MODPY_VERSION}/site-packages/numpy/core/info.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/
-lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/libnpymath.a
+@static-lib lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/libnpymath.a
 lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/npy-pkg-config/
 lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/npy-pkg-config/mlib.ini
 lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/npy-pkg-config/npymath.ini
 lib/python${MODPY_VERSION}/site-packages/numpy/core/machar.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/memmap.py
-lib/python${MODPY_VERSION}/site-packages/numpy/core/multiarray.so
-lib/python${MODPY_VERSION}/site-packages/numpy/core/multiarray_tests.so
+lib/python${MODPY_VERSION}/site-packages/numpy/core/multiarray.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/numeric.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/numerictypes.py
-lib/python${MODPY_VERSION}/site-packages/numpy/core/operand_flag_tests.so
+lib/python${MODPY_VERSION}/site-packages/numpy/core/overrides.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/records.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/setup.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/setup_common.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/shape_base.py
-lib/python${MODPY_VERSION}/site-packages/numpy/core/struct_ufunc_test.so
-lib/python${MODPY_VERSION}/site-packages/numpy/core/test_rational.so
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/__init__.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/_locales.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/data/
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/data/astype_copy.pkl
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/data/recarray_from_file.fits
@@ -147,10 +172,12 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_nditer.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_numeric.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_numerictypes.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_overrides.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_print.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_records.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_regression.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalar_ctors.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalarbuffer.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalarinherit.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalarmath.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalarprint.py
@@ -159,8 +186,8 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_umath.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_umath_complex.py
 lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_unicode.py
-lib/python${MODPY_VERSION}/site-packages/numpy/core/umath.so
-lib/python${MODPY_VERSION}/site-packages/numpy/core/umath_tests.so
+lib/python${MODPY_VERSION}/site-packages/numpy/core/umath.py
+lib/python${MODPY_VERSION}/site-packages/numpy/core/umath_tests.py
 lib/python${MODPY_VERSION}/site-packages/numpy/ctypeslib.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/__config__.py
@@ -169,12 +196,12 @@ ${MODPY_COMMENT}lib/python${MODPY_VERSIO
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}__config__.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}__version__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}_shell_utils.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}ccompiler.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}compat.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}conv_template.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}core.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}cpuinfo.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}environment.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}exec_command.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}extension.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}from_template.${MODPY_PYC_MAGIC_TAG}pyc
@@ -194,6 +221,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}system_info.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}unixccompiler.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/__version__.py
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/_shell_utils.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/ccompiler.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/command/
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/command/__init__.py
@@ -237,7 +265,6 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/conv_template.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/core.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/cpuinfo.py
-lib/python${MODPY_VERSION}/site-packages/numpy/distutils/environment.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/exec_command.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/extension.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/
@@ -246,6 +273,7 @@ ${MODPY_COMMENT}lib/python${MODPY_VERSIO
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}absoft.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}compaq.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}environment.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}g95.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}gnu.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}hpux.${MODPY_PYC_MAGIC_TAG}pyc
@@ -261,6 +289,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}vast.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/absoft.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/compaq.py
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/environment.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/g95.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/gnu.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/hpux.py
@@ -295,11 +324,14 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/__init__.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_exec_command.py
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_fcompiler.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_fcompiler_gnu.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_fcompiler_intel.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_fcompiler_nagfor.py
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_from_template.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_misc_util.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_npy_pkg_config.py
+lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_shell_utils.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_system_info.py
 lib/python${MODPY_VERSION}/site-packages/numpy/distutils/unixccompiler.py
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/
@@ -311,6 +343,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}byteswapping.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}constants.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}creation.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}dispatch.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}glossary.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}indexing.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}internals.${MODPY_PYC_MAGIC_TAG}pyc
@@ -323,6 +356,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/byteswapping.py
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/constants.py
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/creation.py
+lib/python${MODPY_VERSION}/site-packages/numpy/doc/dispatch.py
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/glossary.py
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/indexing.py
 lib/python${MODPY_VERSION}/site-packages/numpy/doc/internals.py
@@ -407,15 +441,18 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_block_docstring.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_callback.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_common.py
+lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_compile_function.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_kind.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_mixed.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_parameter.py
+lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_quoted_character.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_regression.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_character.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_complex.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_integer.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_logical.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_real.py
+lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_semicolon_split.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_size.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_string.py
 lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/util.py
@@ -429,7 +466,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/fft/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/fft/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/fft/fftpack.py
-lib/python${MODPY_VERSION}/site-packages/numpy/fft/fftpack_lite.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/fft/fftpack_lite.so
 lib/python${MODPY_VERSION}/site-packages/numpy/fft/helper.py
 lib/python${MODPY_VERSION}/site-packages/numpy/fft/info.py
 lib/python${MODPY_VERSION}/site-packages/numpy/fft/setup.py
@@ -450,6 +487,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}financial.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}format.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}function_base.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}histograms.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}index_tricks.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}mixins.${MODPY_PYC_MAGIC_TAG}pyc
@@ -475,6 +513,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/financial.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/format.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/function_base.py
+lib/python${MODPY_VERSION}/site-packages/numpy/lib/histograms.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/index_tricks.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/info.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/mixins.py
@@ -504,6 +543,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_financial.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_format.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_function_base.py
+lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_histograms.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_index_tricks.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_io.py
 lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_mixins.py
@@ -530,9 +570,9 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/${MODPY_PYCACHE}linalg.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/linalg/_umath_linalg.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/linalg/_umath_linalg.so
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/info.py
-lib/python${MODPY_VERSION}/site-packages/numpy/linalg/lapack_lite.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/linalg/lapack_lite.so
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/linalg.py
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/setup.py
 lib/python${MODPY_VERSION}/site-packages/numpy/linalg/tests/
@@ -582,6 +622,9 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/
 lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/__init__.py
 lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_defmatrix.py
+lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_interaction.py
+lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_masked_matrix.py
+lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_matrix_linalg.py
 lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_multiarray.py
 lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_numeric.py
 lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_regression.py
@@ -625,7 +668,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/random/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/random/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/random/info.py
-lib/python${MODPY_VERSION}/site-packages/numpy/random/mtrand.so
+@so lib/python${MODPY_VERSION}/site-packages/numpy/random/mtrand.so
 lib/python${MODPY_VERSION}/site-packages/numpy/random/randomkit.h
 lib/python${MODPY_VERSION}/site-packages/numpy/random/setup.py
 lib/python${MODPY_VERSION}/site-packages/numpy/random/tests/
@@ -643,21 +686,21 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/${MODPY_PYCACHE}print_coercion_tables.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/__init__.py
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}decorators.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}noseclasses.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}nosetester.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}parameterized.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/decorators.py
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/noseclasses.py
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/nosetester.py
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/parameterized.py
+lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/utils.py
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/decorators.py
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/__init__.py
-${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}/
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}decorators.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}noseclasses.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}nosetester.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}parameterized.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/decorators.py
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/noseclasses.py
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/nosetester.py
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/parameterized.py
-lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/utils.py
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/noseclasses.py
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/nosetester.py
 lib/python${MODPY_VERSION}/site-packages/numpy/testing/print_coercion_tables.py
@@ -673,6 +716,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_ctypeslib.py
 lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_matlib.py
 lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_numpy_version.py
+lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_public_api.py
 lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_reloading.py
 lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_scripts.py
 lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_warnings.py

Reply | Threaded
Open this post in threaded view
|

Re: WIP: Update of math/py-numpy to 1.16.5

Stuart Henderson
On 2020/04/01 21:30, Paul Irofti wrote:
> Here is a final diff that incorporates jca's patch and sthen's. OK?

OK with me.

>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/math/py-numpy/Makefile,v
> retrieving revision 1.57
> diff -u -p -u -p -r1.57 Makefile
> --- Makefile 10 Mar 2020 03:31:45 -0000 1.57
> +++ Makefile 1 Apr 2020 18:28:16 -0000
> @@ -2,11 +2,10 @@
>  
>  COMMENT= fast array and numeric programming library for Python
>  
> -MODPY_EGG_VERSION= 1.14.6
> +MODPY_EGG_VERSION= 1.16.5
>  DISTNAME= numpy-${MODPY_EGG_VERSION}
>  PKGNAME= py-${DISTNAME}
>  EXTRACT_SUFX= .zip
> -REVISION= 2
>  
>  CATEGORIES= math devel
>  
> @@ -15,7 +14,8 @@ HOMEPAGE= https://www.numpy.org/
>  # BSD
>  PERMIT_PACKAGE = Yes
>  
> -WANTLIB= blas lapack m pthread ${MODFORTRAN_WANTLIB} ${MODPY_WANTLIB}
> +WANTLIB += ${MODFORTRAN_WANTLIB} ${MODPY_WANTLIB}
> +WANTLIB += blas cblas lapack m pthread
>  
>  MODULES= lang/python \
>   fortran
> @@ -27,13 +27,14 @@ MODPY_PI = Yes
>  MODPY_SETUPTOOLS= Yes
>  MODPY_DISTUTILS_BUILDARGS = --fcompiler=gnu95
>  
> -TEST_DEPENDS= devel/py-nose${MODPY_FLAVOR} \
> - devel/py-tz${MODPY_FLAVOR}
> -
> +TEST_DEPENDS= ${FULLPKGNAME}:${FULLPKGPATH} \
> + devel/py-test${MODPY_FLAVOR} \
> + devel/py-tz${MODPY_FLAVOR}
>  MODFORTRAN_COMPILER = gfortran
>  
>  BUILD_DEPENDS = ${MODFORTRAN_BUILD_DEPENDS}
> -LIB_DEPENDS=            math/lapack \
> +LIB_DEPENDS= math/cblas \
> + math/lapack \
>   ${MODFORTRAN_LIB_DEPENDS}
>  
>  # Cython 0.28.* uses __attribute__((optimize("Os"))) which
> @@ -54,7 +55,7 @@ pre-build:
>   cp -f ${WRKSRC}/numpy/distutils/site.cfg ${WRKSRC}/site.cfg
>  
>  do-test:
> - cd ${WRKDIR} && ${MAKE_ENV} PYTHONPATH=${WRKINST}${MODPY_SITEPKG} ${MODPY_BIN} -c \
> + cd ${WRKDIR} && ${MAKE_ENV} ${MODPY_BIN} -c \
>      'import numpy ; numpy.test()'
>  
>  .include <bsd.port.mk>
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/math/py-numpy/distinfo,v
> retrieving revision 1.13
> diff -u -p -u -p -r1.13 distinfo
> --- distinfo 26 Oct 2018 21:09:31 -0000 1.13
> +++ distinfo 1 Apr 2020 18:28:16 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (numpy-1.14.6.zip) = ElDt9vbEPh14I/CWdBa8GCWLsnHcU2KY6w6gCp5FuAo=
> -SIZE (numpy-1.14.6.zip) = 4906096
> +SHA256 (numpy-1.16.5.zip) = i7RS2U6WSzEiBbDeEjjdcgnaRSNDZTqyFLXWgXgOegw=
> +SIZE (numpy-1.16.5.zip) = 5138208
> Index: patches/patch-numpy_core_include_numpy_npy_common_h
> ===================================================================
> RCS file: /cvs/ports/math/py-numpy/patches/patch-numpy_core_include_numpy_npy_common_h,v
> retrieving revision 1.6
> diff -u -p -u -p -r1.6 patch-numpy_core_include_numpy_npy_common_h
> --- patches/patch-numpy_core_include_numpy_npy_common_h 30 Jun 2018 21:49:33 -0000 1.6
> +++ patches/patch-numpy_core_include_numpy_npy_common_h 1 Apr 2020 18:28:16 -0000
> @@ -1,13 +1,8 @@
>  $OpenBSD: patch-numpy_core_include_numpy_npy_common_h,v 1.6 2018/06/30 21:49:33 daniel Exp $
>  
> -(1) optimize function attributes were added in gcc 4.4. Apply a fix for the warnings. But
> -the next release of numpy should fix this in a better way. See:
> -https://github.com/numpy/numpy/issues/5451
> +XXX recheck powerpc, is this still needed?
>  
> -Gets rid of these warnings from the build:
> -numpy/core/src/multiarray/lowlevel_strided_loops.c.src:120: warning: 'optimize' attribute directive ignored
> -
> -(2) py-numpy only checks for expl to determine whether extended-precision
> +py-numpy only checks for expl to determine whether extended-precision
>  support is present.  since we don't have it yet;  it implements
>  it's own.  however, on alpha, powerpc, it declared functions with
>  types that conflict with C99 (double for *l), therefore failed.
> @@ -15,36 +10,7 @@ types that conflict with C99 (double for
>  Index: numpy/core/include/numpy/npy_common.h
>  --- numpy/core/include/numpy/npy_common.h.orig
>  +++ numpy/core/include/numpy/npy_common.h
> -@@ -20,6 +20,7 @@
> - #endif
> - #endif
> -
> -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 4)))
> - /*
> -  * gcc does not unroll even with -O3
> -  * use with care, unrolling on modern cpus rarely speeds things up
> -@@ -30,13 +31,20 @@
> - #else
> - #define NPY_GCC_UNROLL_LOOPS
> - #endif
> -+#else
> -+#define NPY_GCC_UNROLL_LOOPS
> -+#endif
> -
> -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 4)))
> - /* highest gcc optimization level, enabled autovectorizer */
> - #ifdef HAVE_ATTRIBUTE_OPTIMIZE_OPT_3
> - #define NPY_GCC_OPT_3 __attribute__((optimize("O3")))
> - #else
> - #define NPY_GCC_OPT_3
> - #endif
> -+#else
> -+#define NPY_GCC_OPT_3
> -+#endif
> -
> - /* compile target attributes */
> - #if defined HAVE_ATTRIBUTE_TARGET_AVX && defined HAVE_LINK_AVX
> -@@ -336,14 +344,8 @@ typedef unsigned char npy_bool;
> +@@ -320,14 +320,8 @@ typedef unsigned char npy_bool;
>   #define NPY_FALSE 0
>   #define NPY_TRUE 1
>  
> Index: patches/patch-numpy_core_setup_common_py
> ===================================================================
> RCS file: patches/patch-numpy_core_setup_common_py
> diff -N patches/patch-numpy_core_setup_common_py
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-numpy_core_setup_common_py 1 Apr 2020 18:28:16 -0000
> @@ -0,0 +1,14 @@
> +$OpenBSD$
> +
> +Index: numpy/core/setup_common.py
> +--- numpy/core/setup_common.py.orig
> ++++ numpy/core/setup_common.py
> +@@ -111,7 +111,7 @@ OPTIONAL_STDFUNCS = ["expm1", "log1p", "acosh", "asinh
> +         "rint", "trunc", "exp2", "log2", "hypot", "atan2", "pow",
> +         "copysign", "nextafter", "ftello", "fseeko",
> +         "strtoll", "strtoull", "cbrt", "strtold_l", "fallocate",
> +-        "backtrace", "madvise"]
> ++        "madvise"]
> +
> +
> + OPTIONAL_HEADERS = [
> Index: patches/patch-numpy_distutils_command_build_src_py
> ===================================================================
> RCS file: /cvs/ports/math/py-numpy/patches/patch-numpy_distutils_command_build_src_py,v
> retrieving revision 1.3
> diff -u -p -u -p -r1.3 patch-numpy_distutils_command_build_src_py
> --- patches/patch-numpy_distutils_command_build_src_py 30 Jun 2018 21:49:33 -0000 1.3
> +++ patches/patch-numpy_distutils_command_build_src_py 1 Apr 2020 18:28:16 -0000
> @@ -6,7 +6,7 @@ WRKOBJDIR has a trailing slash)
>  Index: numpy/distutils/command/build_src.py
>  --- numpy/distutils/command/build_src.py.orig
>  +++ numpy/distutils/command/build_src.py
> -@@ -372,6 +372,7 @@ class build_src(build_ext.build_ext):
> +@@ -370,6 +370,7 @@ class build_src(build_ext.build_ext):
>               #    incl_dirs.append(self.build_src)
>               build_dir = os.path.join(*([self.build_src]\
>                                          +name.split('.')[:-1]))
> Index: patches/patch-numpy_distutils_fcompiler_gnu_py
> ===================================================================
> RCS file: /cvs/ports/math/py-numpy/patches/patch-numpy_distutils_fcompiler_gnu_py,v
> retrieving revision 1.2
> diff -u -p -u -p -r1.2 patch-numpy_distutils_fcompiler_gnu_py
> --- patches/patch-numpy_distutils_fcompiler_gnu_py 30 Jun 2018 21:49:33 -0000 1.2
> +++ patches/patch-numpy_distutils_fcompiler_gnu_py 1 Apr 2020 18:28:16 -0000
> @@ -8,7 +8,7 @@ https://github.com/numpy/numpy/issues/54
>  Index: numpy/distutils/fcompiler/gnu.py
>  --- numpy/distutils/fcompiler/gnu.py.orig
>  +++ numpy/distutils/fcompiler/gnu.py
> -@@ -237,7 +237,6 @@ class GnuFCompiler(FCompiler):
> +@@ -245,7 +245,6 @@ class GnuFCompiler(FCompiler):
>               opt = ['-O2']
>           else:
>               opt = ['-O3']
> Index: pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/math/py-numpy/pkg/PLIST,v
> retrieving revision 1.12
> diff -u -p -u -p -r1.12 PLIST
> --- pkg/PLIST 30 Jun 2018 21:49:33 -0000 1.12
> +++ pkg/PLIST 1 Apr 2020 18:28:17 -0000
> @@ -1,10 +1,14 @@
>  @comment $OpenBSD: PLIST,v 1.12 2018/06/30 21:49:33 daniel Exp $
> +@comment bin/f2py
> +@comment bin/f2py3
>  bin/f2py${MODPY_VERSION}
>  lib/python${MODPY_VERSION}/site-packages/numpy/
>  lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/
>  lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/PKG-INFO
>  lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/SOURCES.txt
>  lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/dependency_links.txt
> +lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/entry_points.txt
> +lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/not-zip-safe
>  lib/python${MODPY_VERSION}/site-packages/numpy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/top_level.txt
>  lib/python${MODPY_VERSION}/site-packages/numpy/LICENSE.txt
>  lib/python${MODPY_VERSION}/site-packages/numpy/__config__.py
> @@ -14,8 +18,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}_distributor_init.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}_globals.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}_import_tools.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}add_newdocs.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}_pytesttester.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}conftest.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}ctypeslib.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}dual.${MODPY_PYC_MAGIC_TAG}pyc
> @@ -24,8 +27,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/${MODPY_PYCACHE}version.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/_distributor_init.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/_globals.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/_import_tools.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/add_newdocs.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/_pytesttester.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/compat/
>  lib/python${MODPY_VERSION}/site-packages/numpy/compat/__init__.py
>  ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/numpy/compat/${MODPY_PYCACHE}/
> @@ -36,13 +38,22 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/compat/_inspect.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/compat/py3k.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/compat/setup.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/compat/tests/
> +lib/python${MODPY_VERSION}/site-packages/numpy/compat/tests/__init__.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/compat/tests/test_compat.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/conftest.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/__init__.py
>  ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}/
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_add_newdocs.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_aliased_types.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_dtype.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_dtype_ctypes.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_internal.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_methods.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_string_helpers.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}_type_aliases.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}arrayprint.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}cversions.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}defchararray.${MODPY_PYC_MAGIC_TAG}pyc
> @@ -54,15 +65,31 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}machar.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}memmap.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}multiarray.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}numeric.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}numerictypes.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}overrides.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}records.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}setup_common.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}shape_base.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/numpy/core/_dummy.so
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}umath.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/${MODPY_PYCACHE}umath_tests.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/_add_newdocs.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/_aliased_types.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/_dtype.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/_dtype_ctypes.py
> +@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_dummy.so
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/_internal.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/_methods.py
> +@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_multiarray_tests.so
> +@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_multiarray_umath.so
> +@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_operand_flag_tests.so
> +@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_rational_tests.so
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/_string_helpers.py
> +@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_struct_ufunc_tests.so
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/_type_aliases.py
> +@so lib/python${MODPY_VERSION}/site-packages/numpy/core/_umath_tests.so
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/arrayprint.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/cversions.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/defchararray.py
> @@ -101,25 +128,23 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/include/numpy/utils.h
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/info.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/
> -lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/libnpymath.a
> +@static-lib lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/libnpymath.a
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/npy-pkg-config/
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/npy-pkg-config/mlib.ini
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/lib/npy-pkg-config/npymath.ini
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/machar.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/memmap.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/core/multiarray.so
> -lib/python${MODPY_VERSION}/site-packages/numpy/core/multiarray_tests.so
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/multiarray.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/numeric.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/numerictypes.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/core/operand_flag_tests.so
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/overrides.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/records.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/setup.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/setup_common.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/shape_base.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/core/struct_ufunc_test.so
> -lib/python${MODPY_VERSION}/site-packages/numpy/core/test_rational.so
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/__init__.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/_locales.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/data/
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/data/astype_copy.pkl
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/data/recarray_from_file.fits
> @@ -147,10 +172,12 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_nditer.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_numeric.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_numerictypes.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_overrides.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_print.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_records.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_regression.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalar_ctors.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalarbuffer.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalarinherit.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalarmath.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_scalarprint.py
> @@ -159,8 +186,8 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_umath.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_umath_complex.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/core/tests/test_unicode.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/core/umath.so
> -lib/python${MODPY_VERSION}/site-packages/numpy/core/umath_tests.so
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/umath.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/core/umath_tests.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/ctypeslib.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/__config__.py
> @@ -169,12 +196,12 @@ ${MODPY_COMMENT}lib/python${MODPY_VERSIO
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}__config__.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}__version__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}_shell_utils.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}ccompiler.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}compat.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}conv_template.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}core.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}cpuinfo.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}environment.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}exec_command.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}extension.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}from_template.${MODPY_PYC_MAGIC_TAG}pyc
> @@ -194,6 +221,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}system_info.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/${MODPY_PYCACHE}unixccompiler.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/__version__.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/distutils/_shell_utils.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/ccompiler.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/command/
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/command/__init__.py
> @@ -237,7 +265,6 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/conv_template.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/core.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/cpuinfo.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/distutils/environment.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/exec_command.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/extension.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/
> @@ -246,6 +273,7 @@ ${MODPY_COMMENT}lib/python${MODPY_VERSIO
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}absoft.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}compaq.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}environment.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}g95.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}gnu.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}hpux.${MODPY_PYC_MAGIC_TAG}pyc
> @@ -261,6 +289,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/${MODPY_PYCACHE}vast.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/absoft.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/compaq.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/environment.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/g95.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/gnu.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/fcompiler/hpux.py
> @@ -295,11 +324,14 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/__init__.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_exec_command.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_fcompiler.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_fcompiler_gnu.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_fcompiler_intel.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_fcompiler_nagfor.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_from_template.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_misc_util.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_npy_pkg_config.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_shell_utils.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/tests/test_system_info.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/distutils/unixccompiler.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/doc/
> @@ -311,6 +343,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}byteswapping.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}constants.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}creation.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}dispatch.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}glossary.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}indexing.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/doc/${MODPY_PYCACHE}internals.${MODPY_PYC_MAGIC_TAG}pyc
> @@ -323,6 +356,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/doc/byteswapping.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/doc/constants.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/doc/creation.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/doc/dispatch.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/doc/glossary.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/doc/indexing.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/doc/internals.py
> @@ -407,15 +441,18 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_block_docstring.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_callback.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_common.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_compile_function.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_kind.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_mixed.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_parameter.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_quoted_character.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_regression.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_character.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_complex.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_integer.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_logical.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_return_real.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_semicolon_split.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_size.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/test_string.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/f2py/tests/util.py
> @@ -429,7 +466,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/fft/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/fft/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/fft/fftpack.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/fft/fftpack_lite.so
> +@so lib/python${MODPY_VERSION}/site-packages/numpy/fft/fftpack_lite.so
>  lib/python${MODPY_VERSION}/site-packages/numpy/fft/helper.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/fft/info.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/fft/setup.py
> @@ -450,6 +487,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}financial.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}format.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}function_base.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}histograms.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}index_tricks.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/${MODPY_PYCACHE}mixins.${MODPY_PYC_MAGIC_TAG}pyc
> @@ -475,6 +513,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/financial.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/format.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/function_base.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/lib/histograms.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/index_tricks.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/info.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/mixins.py
> @@ -504,6 +543,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_financial.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_format.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_function_base.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_histograms.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_index_tricks.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_io.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/lib/tests/test_mixins.py
> @@ -530,9 +570,9 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/linalg/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/linalg/${MODPY_PYCACHE}linalg.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/linalg/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/numpy/linalg/_umath_linalg.so
> +@so lib/python${MODPY_VERSION}/site-packages/numpy/linalg/_umath_linalg.so
>  lib/python${MODPY_VERSION}/site-packages/numpy/linalg/info.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/linalg/lapack_lite.so
> +@so lib/python${MODPY_VERSION}/site-packages/numpy/linalg/lapack_lite.so
>  lib/python${MODPY_VERSION}/site-packages/numpy/linalg/linalg.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/linalg/setup.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/linalg/tests/
> @@ -582,6 +622,9 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/
>  lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/__init__.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_defmatrix.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_interaction.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_masked_matrix.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_matrix_linalg.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_multiarray.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_numeric.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/matrixlib/tests/test_regression.py
> @@ -625,7 +668,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/random/${MODPY_PYCACHE}info.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/random/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/random/info.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/random/mtrand.so
> +@so lib/python${MODPY_VERSION}/site-packages/numpy/random/mtrand.so
>  lib/python${MODPY_VERSION}/site-packages/numpy/random/randomkit.h
>  lib/python${MODPY_VERSION}/site-packages/numpy/random/setup.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/random/tests/
> @@ -643,21 +686,21 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/testing/${MODPY_PYCACHE}print_coercion_tables.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/testing/${MODPY_PYCACHE}setup.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/numpy/testing/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/
> +lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/__init__.py
> +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}/
> +lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}decorators.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}noseclasses.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}nosetester.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}parameterized.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/decorators.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/noseclasses.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/nosetester.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/parameterized.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/testing/_private/utils.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/testing/decorators.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/
> -lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/__init__.py
> -${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}/
> -lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}decorators.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}noseclasses.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}nosetester.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}parameterized.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/decorators.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/noseclasses.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/nosetester.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/parameterized.py
> -lib/python${MODPY_VERSION}/site-packages/numpy/testing/nose_tools/utils.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/testing/noseclasses.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/testing/nosetester.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/testing/print_coercion_tables.py
> @@ -673,6 +716,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_ctypeslib.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_matlib.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_numpy_version.py
> +lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_public_api.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_reloading.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_scripts.py
>  lib/python${MODPY_VERSION}/site-packages/numpy/tests/test_warnings.py
>

12