Wednesday, August 28, 2024

Re: numpy 1.26.4 (python 3.12 and cython 3 support)

On 2024/08/28 11:51, Theo Buehler wrote:
> On Tue, Aug 27, 2024 at 06:52:47PM +0100, Stuart Henderson wrote:
> > On 2024/08/27 17:03, Stuart Henderson wrote:
> > > The extra patches below fix things so tests can run on 3.11 (remove
> > > NO_TEST from Makefile too). "make test" on amd64 Py 3.11 results below
> > > the diff (summary: 31 failed, 35649 passed, 2372 skipped, 1305
> > > deselected, 33 xfailed, 1 xpassed, 21 warnings in 207.79s"; I'll run
> > > it on aarch64 when my machine's free and reply if there are many
> > > differences. Maybe i386 too when the current bulk finishes (a day or
> > > two).
> >
> > Build fails early on aarch64. The meson full log file referenced does
> > not exist.
>
> [...]
>
> > ../meson.build:1:0: ERROR: Unknown compiler(s): [['cc']]
>
> This didn't happen to me on my m1. It built without issue and the test
> results seem adequate - about the same as last time if memory serves.
>
> Almost all failures (if not all) are floating point maths-related.
>
> = 80 failed, 32771 passed, 977 skipped, 1305 deselected, 33 xfailed, 1 xpassed, 61 warnings in 164.79s (0:02:44) =

With the gdb workaround that I've now committed, same figures on M2.

> sparc64 also built and tests also look good:
>
> = 68 failed, 32044 passed, 1716 skipped, 1305 deselected, 33 xfailed, 1 xpassed, 19 warnings in 668.77s (0:11:08) =

I think this is looking quite promising on amd64 aarch64 sparc64.

i386 builds ok but tests bomb out in a familiar way.

MODPY_DISTUTILS_BUILDARGS is no longer useful with meson-python. The
old hack can be moved to pre-build in an ugly but functional way:

pre-build:
cp -f ${WRKSRC}/numpy/distutils/site.cfg ${WRKSRC}/site.cfg
ln -sf ${LOCALBASE}/bin/gas ${WRKDIR}/bin/as

# cpu optimizations (where supported) are runtime detected, but there's
# some problem on i386 where they trigger segfaults in numpy's regression
# tests, and in other programs using numpy (e.g. building makehuman).
# tests look good on amd64 arm64 riscv64 as-is.
# numpy's regressions tests result in segv on powerpc (and also did in
# 1.19.5) but at least some normal runtime seems ok (makehuman builds).
# https://github.com/numpy/numpy/issues/20799
.if ${MACHINE_ARCH} == i386
sed -i '/^option.*disable-optim/ s/false/true/' ${WRKSRC}/meson_options.txt
.endif

Presumably "MODPY_DISTUTILS_BUILDARGS+= --fcompiler=gnu95" from the
PROPERTIES:Mgcc49 block is not doing anything useful (that block's
used on "arches where ports-gcc >4.9 exists" which build ok, so that
seems no longer useful).

No comments:

Post a Comment