0s autopkgtest [05:50:38]: starting date and time: 2026-01-24 05:50:38+0000 0s autopkgtest [05:50:38]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [05:50:38]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.d0tcx0vl/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python3-defaults --apt-upgrade compyle --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python3-defaults/3.14.2-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@sto01-8.secgroup --name adt-resolute-amd64-compyle-20260124-055037-juju-7f2275-prod-proposed-migration-environment-15-9bc989e3-7ece-4a64-b641-cbef6e9e9d5b --image adt/ubuntu-resolute-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-amd64-compyle-20260124-055037-juju-7f2275-prod-proposed-migration-environment-15-9bc989e3-7ece-4a64-b641-cbef6e9e9d5b from image adt/ubuntu-resolute-amd64-server-20260123.img (UUID 789dbc23-4f1b-4e7c-bcab-98e6eebf04f2)... 78s autopkgtest [05:51:56]: testbed dpkg architecture: amd64 78s autopkgtest [05:51:56]: testbed apt version: 3.1.13 78s autopkgtest [05:51:56]: @@@@@@@@@@@@@@@@@@@@ test bed setup 78s autopkgtest [05:51:56]: testbed release detected to be: None 79s autopkgtest [05:51:57]: updating testbed package index (apt update) 79s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 79s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 79s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 79s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 79s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [94.5 kB] 79s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1038 kB] 79s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 79s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [24.3 kB] 79s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [97.4 kB] 79s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [114 kB] 79s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [3776 B] 79s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 Packages [12.3 kB] 79s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/restricted i386 Packages [3696 B] 80s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [336 B] 80s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [935 kB] 80s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [393 kB] 80s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [25.4 kB] 80s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [12.4 kB] 80s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [4704 B] 80s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [824 B] 80s Fetched 2887 kB in 1s (3270 kB/s) 81s Reading package lists... 81s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 81s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 81s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 81s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 82s Reading package lists... 82s Reading package lists... 82s Building dependency tree... 82s Reading state information... 82s Calculating upgrade... 82s The following packages were automatically installed and are no longer required: 82s python3.13 python3.13-minimal 82s Use 'sudo apt autoremove' to remove them. 82s The following NEW packages will be installed: 82s libpython3.14-minimal libpython3.14-stdlib python3.14 python3.14-minimal 82s The following packages will be upgraded: 82s cloud-initramfs-copymods cloud-initramfs-dyn-netconf libgpg-error-l10n 82s libgpg-error0 liblzo2-2 libplymouth5 libpython3-stdlib libtasn1-6 plymouth 82s plymouth-theme-ubuntu-text python3 python3-gdbm python3-jaraco.context 82s python3-minimal 82s 14 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. 82s Need to get 7270 kB of archives. 82s After this operation, 24.5 MB of additional disk space will be used. 82s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-minimal amd64 3.14.2-1 [920 kB] 83s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14-minimal amd64 3.14.2-1 [2563 kB] 83s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-minimal amd64 3.14.2-1 [28.2 kB] 83s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3 amd64 3.14.2-1 [22.9 kB] 83s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-stdlib amd64 3.14.2-1 [2398 kB] 83s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14 amd64 3.14.2-1 [816 kB] 83s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libpython3-stdlib amd64 3.14.2-1 [10.9 kB] 83s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 libgpg-error-l10n all 1.58-1build1 [9192 B] 83s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libgpg-error0 amd64 1.58-1build1 [83.3 kB] 83s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 libtasn1-6 amd64 4.21.0-2 [45.3 kB] 83s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 libplymouth5 amd64 24.004.60+git20250831.4a3c171d-0ubuntu5 [143 kB] 83s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 plymouth-theme-ubuntu-text amd64 24.004.60+git20250831.4a3c171d-0ubuntu5 [10.2 kB] 83s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 plymouth amd64 24.004.60+git20250831.4a3c171d-0ubuntu5 [135 kB] 83s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-gdbm amd64 3.14.2-1 [11.1 kB] 83s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 liblzo2-2 amd64 2.10-3build2 [56.0 kB] 83s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-jaraco.context all 6.0.1-2 [8198 B] 83s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 cloud-initramfs-copymods all 0.50 [4528 B] 83s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 cloud-initramfs-dyn-netconf all 0.50 [6514 B] 83s dpkg-preconfigure: unable to re-open stdin: No such file or directory 83s Fetched 7270 kB in 1s (12.6 MB/s) 83s Selecting previously unselected package libpython3.14-minimal:amd64. 83s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 124176 files and directories currently installed.) 83s Preparing to unpack .../libpython3.14-minimal_3.14.2-1_amd64.deb ... 83s Unpacking libpython3.14-minimal:amd64 (3.14.2-1) ... 83s Selecting previously unselected package python3.14-minimal. 83s Preparing to unpack .../python3.14-minimal_3.14.2-1_amd64.deb ... 83s Unpacking python3.14-minimal (3.14.2-1) ... 83s Setting up libpython3.14-minimal:amd64 (3.14.2-1) ... 83s Setting up python3.14-minimal (3.14.2-1) ... 84s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 124518 files and directories currently installed.) 84s Preparing to unpack .../python3-minimal_3.14.2-1_amd64.deb ... 84s Unpacking python3-minimal (3.14.2-1) over (3.13.9-3) ... 84s Setting up python3-minimal (3.14.2-1) ... 84s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 124518 files and directories currently installed.) 84s Preparing to unpack .../00-python3_3.14.2-1_amd64.deb ... 84s running python pre-rtupdate hooks for python3.14... 84s Unpacking python3 (3.14.2-1) over (3.13.9-3) ... 84s Selecting previously unselected package libpython3.14-stdlib:amd64. 84s Preparing to unpack .../01-libpython3.14-stdlib_3.14.2-1_amd64.deb ... 84s Unpacking libpython3.14-stdlib:amd64 (3.14.2-1) ... 84s Selecting previously unselected package python3.14. 84s Preparing to unpack .../02-python3.14_3.14.2-1_amd64.deb ... 84s Unpacking python3.14 (3.14.2-1) ... 84s Preparing to unpack .../03-libpython3-stdlib_3.14.2-1_amd64.deb ... 84s Unpacking libpython3-stdlib:amd64 (3.14.2-1) over (3.13.9-3) ... 84s Preparing to unpack .../04-libgpg-error-l10n_1.58-1build1_all.deb ... 84s Unpacking libgpg-error-l10n (1.58-1build1) over (1.58-1) ... 84s Preparing to unpack .../05-libgpg-error0_1.58-1build1_amd64.deb ... 85s Unpacking libgpg-error0:amd64 (1.58-1build1) over (1.58-1) ... 85s Preparing to unpack .../06-libtasn1-6_4.21.0-2_amd64.deb ... 85s Unpacking libtasn1-6:amd64 (4.21.0-2) over (4.20.0-2ubuntu1) ... 85s Preparing to unpack .../07-libplymouth5_24.004.60+git20250831.4a3c171d-0ubuntu5_amd64.deb ... 85s Unpacking libplymouth5:amd64 (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 85s Preparing to unpack .../08-plymouth-theme-ubuntu-text_24.004.60+git20250831.4a3c171d-0ubuntu5_amd64.deb ... 85s Unpacking plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 85s Preparing to unpack .../09-plymouth_24.004.60+git20250831.4a3c171d-0ubuntu5_amd64.deb ... 85s Unpacking plymouth (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 85s Preparing to unpack .../10-python3-gdbm_3.14.2-1_amd64.deb ... 85s Unpacking python3-gdbm (3.14.2-1) over (3.13.9-3) ... 85s Preparing to unpack .../11-liblzo2-2_2.10-3build2_amd64.deb ... 85s Unpacking liblzo2-2:amd64 (2.10-3build2) over (2.10-3build1) ... 85s Preparing to unpack .../12-python3-jaraco.context_6.0.1-2_all.deb ... 85s Unpacking python3-jaraco.context (6.0.1-2) over (6.0.1-1build1) ... 85s Preparing to unpack .../13-cloud-initramfs-copymods_0.50_all.deb ... 85s Unpacking cloud-initramfs-copymods (0.50) over (0.49build1) ... 85s Preparing to unpack .../14-cloud-initramfs-dyn-netconf_0.50_all.deb ... 85s Unpacking cloud-initramfs-dyn-netconf (0.50) over (0.49build1) ... 85s Setting up libgpg-error0:amd64 (1.58-1build1) ... 85s Setting up libpython3.14-stdlib:amd64 (3.14.2-1) ... 85s Setting up liblzo2-2:amd64 (2.10-3build2) ... 85s Setting up cloud-initramfs-copymods (0.50) ... 85s Setting up libplymouth5:amd64 (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 85s Setting up cloud-initramfs-dyn-netconf (0.50) ... 85s Setting up libtasn1-6:amd64 (4.21.0-2) ... 85s Setting up python3.14 (3.14.2-1) ... 86s Setting up libgpg-error-l10n (1.58-1build1) ... 86s Setting up libpython3-stdlib:amd64 (3.14.2-1) ... 86s Setting up python3-gdbm (3.14.2-1) ... 86s Setting up plymouth (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 86s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 86s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 86s Setting up python3 (3.14.2-1) ... 86s running python rtupdate hooks for python3.14... 86s running python post-rtupdate hooks for python3.14... 86s Setting up python3-jaraco.context (6.0.1-2) ... 86s Processing triggers for initramfs-tools (0.150ubuntu7) ... 86s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 90s Processing triggers for libc-bin (2.42-2ubuntu4) ... 90s Processing triggers for systemd (259-1ubuntu2) ... 90s Processing triggers for man-db (2.13.1-1) ... 91s Setting up plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 91s Processing triggers for initramfs-tools (0.150ubuntu7) ... 91s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 95s autopkgtest [05:52:13]: upgrading testbed (apt dist-upgrade and autopurge) 95s Reading package lists... 95s Building dependency tree... 95s Reading state information... 95s Calculating upgrade... 95s The following packages were automatically installed and are no longer required: 95s python3.13 python3.13-minimal 95s Use 'sudo apt autoremove' to remove them. 95s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 95s Reading package lists... 95s Building dependency tree... 95s Reading state information... 96s Solving dependencies... 96s The following packages will be REMOVED: 96s python3.13* python3.13-minimal* 96s 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. 96s After this operation, 7860 kB disk space will be freed. 96s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 124949 files and directories currently installed.) 96s Removing python3.13 (3.13.11-1) ... 96s Removing python3.13-minimal (3.13.11-1) ... 96s Processing triggers for man-db (2.13.1-1) ... 96s Processing triggers for systemd (259-1ubuntu2) ... 97s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 124922 files and directories currently installed.) 97s Purging configuration files for python3.13-minimal (3.13.11-1) ... 97s autopkgtest [05:52:15]: rebooting testbed after setup commands that affected boot 158s autopkgtest [05:53:16]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 12 16:49:02 UTC 2026 160s autopkgtest [05:53:18]: @@@@@@@@@@@@@@@@@@@@ apt-source compyle 161s Get:1 http://ftpmaster.internal/ubuntu resolute/universe compyle 0.8.1-11 (dsc) [1843 B] 161s Get:2 http://ftpmaster.internal/ubuntu resolute/universe compyle 0.8.1-11 (tar) [123 kB] 161s Get:3 http://ftpmaster.internal/ubuntu resolute/universe compyle 0.8.1-11 (diff) [7400 B] 162s gpgv: Signature made Thu Jun 19 07:40:21 2025 UTC 162s gpgv: using RSA key D54C3BFAFFB042DE382DA5D741CE7F0B9F1B8B32 162s gpgv: Can't check signature: No public key 162s dpkg-source: warning: cannot verify inline signature for ./compyle_0.8.1-11.dsc: no acceptable signature found 162s autopkgtest [05:53:20]: testing package compyle version 0.8.1-11 162s autopkgtest [05:53:20]: build not needed 163s autopkgtest [05:53:21]: test pybuild-autopkgtest: preparing testbed 163s Reading package lists... 163s Building dependency tree... 163s Reading state information... 163s Solving dependencies... 163s The following NEW packages will be installed: 163s autoconf automake autopoint autotools-dev build-essential clang-18 cpp 163s cpp-15 cpp-15-x86-64-linux-gnu cpp-x86-64-linux-gnu cython3 debhelper 163s debugedit dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-15 163s g++-15-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-15 163s gcc-15-x86-64-linux-gnu gcc-x86-64-linux-gnu gettext intltool-debian 163s libarchive-zip-perl libasan8 libblas3 libcc1-0 libclang-common-18-dev 163s libclang-cpp18 libclang1-18 libdebhelper-perl libexpat1-dev 163s libfile-stripnondeterminism-perl libgc1 libgcc-15-dev libgfortran5 libgomp1 163s libhwasan0 libhwloc15 libisl23 libitm1 liblapack3 libllvm18 163s libllvmspirvlib18.1 liblsan0 libmpc3 libobjc-15-dev libobjc4 libpocl2-common 163s libpocl2t64 libpython3-all-dev libpython3-dev libpython3.13-dev 163s libpython3.14 libpython3.14-dev libquadmath0 libstdc++-15-dev libtool 163s libtsan2 libubsan1 llvm-18-linker-tools llvm-spirv-18 m4 ocl-icd-libopencl1 163s po-debconf pocl-opencl-icd pybuild-plugin-autopkgtest python3-all 163s python3-all-dev python3-compyle python3-decorator python3-dev 163s python3-iniconfig python3-mako python3-numpy python3-numpy-dev 163s python3-platformdirs python3-pluggy python3-pyopencl python3-pytest 163s python3-pytools python3.13 python3.13-dev python3.13-minimal python3.14-dev 163s zlib1g-dev 164s 0 upgraded, 90 newly installed, 0 to remove and 0 not upgraded. 164s Need to get 180 MB of archives. 164s After this operation, 737 MB of additional disk space will be used. 164s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.13-minimal amd64 3.13.11-1 [2408 kB] 164s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-numpy-dev amd64 1:2.3.5+ds-3 [147 kB] 164s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 libblas3 amd64 3.12.1-7ubuntu1 [260 kB] 164s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 libgfortran5 amd64 15.2.0-11ubuntu1 [939 kB] 164s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 liblapack3 amd64 3.12.1-7ubuntu1 [2739 kB] 164s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-numpy amd64 1:2.3.5+ds-3 [8129 kB] 164s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.13 amd64 3.13.11-1 [758 kB] 164s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 m4 amd64 1.4.20-2 [217 kB] 164s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 autoconf all 2.72-3.1ubuntu1 [384 kB] 164s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 autotools-dev all 20240727.1 [43.4 kB] 164s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 automake all 1:1.18.1-3build1 [582 kB] 164s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 autopoint all 0.23.2-1 [620 kB] 165s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 libisl23 amd64 0.27-1build1 [691 kB] 165s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 libmpc3 amd64 1.3.1-2 [54.8 kB] 165s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15-x86-64-linux-gnu amd64 15.2.0-11ubuntu1 [12.9 MB] 165s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15 amd64 15.2.0-11ubuntu1 [1030 B] 165s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [5746 B] 165s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp amd64 4:15.2.0-4ubuntu1 [22.4 kB] 165s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 libcc1-0 amd64 15.2.0-11ubuntu1 [47.4 kB] 165s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 libgomp1 amd64 15.2.0-11ubuntu1 [151 kB] 165s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 libitm1 amd64 15.2.0-11ubuntu1 [29.5 kB] 165s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 libasan8 amd64 15.2.0-11ubuntu1 [3070 kB] 165s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 liblsan0 amd64 15.2.0-11ubuntu1 [1360 kB] 165s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 libtsan2 amd64 15.2.0-11ubuntu1 [2757 kB] 165s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 libubsan1 amd64 15.2.0-11ubuntu1 [1210 kB] 165s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 libhwasan0 amd64 15.2.0-11ubuntu1 [1685 kB] 165s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 libquadmath0 amd64 15.2.0-11ubuntu1 [153 kB] 165s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 libgcc-15-dev amd64 15.2.0-11ubuntu1 [2863 kB] 165s Get:29 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15-x86-64-linux-gnu amd64 15.2.0-11ubuntu1 [25.4 MB] 166s Get:30 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15 amd64 15.2.0-11ubuntu1 [528 kB] 166s Get:31 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [1208 B] 166s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc amd64 4:15.2.0-4ubuntu1 [5024 B] 166s Get:33 http://ftpmaster.internal/ubuntu resolute/main amd64 libstdc++-15-dev amd64 15.2.0-11ubuntu1 [2574 kB] 166s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15-x86-64-linux-gnu amd64 15.2.0-11ubuntu1 [14.4 MB] 166s Get:35 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15 amd64 15.2.0-11ubuntu1 [24.6 kB] 166s Get:36 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [966 B] 166s Get:37 http://ftpmaster.internal/ubuntu resolute/main amd64 g++ amd64 4:15.2.0-4ubuntu1 [1100 B] 166s Get:38 http://ftpmaster.internal/ubuntu resolute/main amd64 build-essential amd64 12.12ubuntu2 [5256 B] 166s Get:39 http://ftpmaster.internal/ubuntu resolute/universe amd64 libllvm18 amd64 1:18.1.8-20ubuntu5 [27.3 MB] 167s Get:40 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclang-cpp18 amd64 1:18.1.8-20ubuntu5 [13.4 MB] 167s Get:41 http://ftpmaster.internal/ubuntu resolute/main amd64 libgc1 amd64 1:8.2.10-1 [97.9 kB] 167s Get:42 http://ftpmaster.internal/ubuntu resolute/universe amd64 libobjc4 amd64 15.2.0-11ubuntu1 [47.8 kB] 167s Get:43 http://ftpmaster.internal/ubuntu resolute/universe amd64 libobjc-15-dev amd64 15.2.0-11ubuntu1 [196 kB] 167s Get:44 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclang-common-18-dev amd64 1:18.1.8-20ubuntu5 [739 kB] 167s Get:45 http://ftpmaster.internal/ubuntu resolute/universe amd64 llvm-18-linker-tools amd64 1:18.1.8-20ubuntu5 [1305 kB] 167s Get:46 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclang1-18 amd64 1:18.1.8-20ubuntu5 [7710 kB] 167s Get:47 http://ftpmaster.internal/ubuntu resolute/universe amd64 clang-18 amd64 1:18.1.8-20ubuntu5 [79.7 kB] 167s Get:48 http://ftpmaster.internal/ubuntu resolute/universe amd64 cython3 amd64 3.1.6+dfsg-1ubuntu1 [3428 kB] 167s Get:49 http://ftpmaster.internal/ubuntu resolute/main amd64 libdebhelper-perl all 13.28ubuntu1 [97.4 kB] 167s Get:50 http://ftpmaster.internal/ubuntu resolute/main amd64 libtool all 2.5.4-9 [169 kB] 167s Get:51 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-autoreconf all 21 [12.5 kB] 167s Get:52 http://ftpmaster.internal/ubuntu resolute/main amd64 libarchive-zip-perl all 1.68-1 [90.2 kB] 167s Get:53 http://ftpmaster.internal/ubuntu resolute/main amd64 libfile-stripnondeterminism-perl all 1.15.0-1build1 [20.6 kB] 167s Get:54 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-strip-nondeterminism all 1.15.0-1build1 [5110 B] 167s Get:55 http://ftpmaster.internal/ubuntu resolute/main amd64 debugedit amd64 1:5.2-3 [49.9 kB] 167s Get:56 http://ftpmaster.internal/ubuntu resolute/main amd64 dwz amd64 0.16-2 [115 kB] 167s Get:57 http://ftpmaster.internal/ubuntu resolute/main amd64 gettext amd64 0.23.2-1 [1019 kB] 167s Get:58 http://ftpmaster.internal/ubuntu resolute/main amd64 intltool-debian all 0.35.0+20060710.6build1 [24.1 kB] 167s Get:59 http://ftpmaster.internal/ubuntu resolute/main amd64 po-debconf all 1.0.22 [215 kB] 167s Get:60 http://ftpmaster.internal/ubuntu resolute/main amd64 debhelper all 13.28ubuntu1 [916 kB] 167s Get:61 http://ftpmaster.internal/ubuntu resolute/universe amd64 dh-python all 7.20251231 [122 kB] 167s Get:62 http://ftpmaster.internal/ubuntu resolute/main amd64 libexpat1-dev amd64 2.7.3-1 [143 kB] 167s Get:63 http://ftpmaster.internal/ubuntu resolute/universe amd64 libhwloc15 amd64 2.12.2-1 [181 kB] 167s Get:64 http://ftpmaster.internal/ubuntu resolute/universe amd64 libllvmspirvlib18.1 amd64 18.1.19-1 [889 kB] 167s Get:65 http://ftpmaster.internal/ubuntu resolute/universe amd64 libpocl2-common all 6.0-7 [83.0 kB] 167s Get:66 http://ftpmaster.internal/ubuntu resolute/universe amd64 llvm-spirv-18 amd64 18.1.19-1 [543 kB] 167s Get:67 http://ftpmaster.internal/ubuntu resolute/universe amd64 libpocl2t64 amd64 6.0-7 [16.4 MB] 168s Get:68 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14 amd64 3.14.2-1 [2568 kB] 168s Get:69 http://ftpmaster.internal/ubuntu resolute/main amd64 zlib1g-dev amd64 1:1.3.dfsg+really1.3.1-1ubuntu2 [898 kB] 168s Get:70 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-dev amd64 3.14.2-1 [5963 kB] 168s Get:71 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libpython3-dev amd64 3.14.2-1 [11.2 kB] 168s Get:72 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.13-dev amd64 3.13.11-1 [5798 kB] 168s Get:73 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libpython3-all-dev amd64 3.14.2-1 [916 B] 168s Get:74 http://ftpmaster.internal/ubuntu resolute/universe amd64 pybuild-plugin-autopkgtest all 7.20251231 [1748 B] 168s Get:75 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-all amd64 3.14.2-1 [890 B] 168s Get:76 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14-dev amd64 3.14.2-1 [510 kB] 168s Get:77 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-dev amd64 3.14.2-1 [26.6 kB] 168s Get:78 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.13-dev amd64 3.13.11-1 [508 kB] 168s Get:79 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-all-dev amd64 3.14.2-1 [914 B] 168s Get:80 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-mako all 1.3.10-3build1 [63.9 kB] 168s Get:81 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-platformdirs all 4.5.1-1 [17.1 kB] 168s Get:82 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-decorator all 5.2.1-2 [28.1 kB] 168s Get:83 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytools all 2025.1.2-1 [69.9 kB] 168s Get:84 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-compyle all 0.8.1-11 [91.6 kB] 168s Get:85 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-iniconfig all 2.1.0-2 [6962 B] 168s Get:86 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pluggy all 1.6.0-2 [21.1 kB] 168s Get:87 http://ftpmaster.internal/ubuntu resolute/main amd64 ocl-icd-libopencl1 amd64 2.3.4-1 [40.9 kB] 168s Get:88 http://ftpmaster.internal/ubuntu resolute/universe amd64 pocl-opencl-icd amd64 6.0-7 [7170 B] 168s Get:89 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pyopencl amd64 2025.1-2 [498 kB] 168s Get:90 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest all 9.0.2-2 [277 kB] 168s Fetched 180 MB in 5s (39.9 MB/s) 168s Selecting previously unselected package python3.13-minimal. 168s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 124924 files and directories currently installed.) 168s Preparing to unpack .../00-python3.13-minimal_3.13.11-1_amd64.deb ... 168s Unpacking python3.13-minimal (3.13.11-1) ... 168s Selecting previously unselected package python3-numpy-dev:amd64. 168s Preparing to unpack .../01-python3-numpy-dev_1%3a2.3.5+ds-3_amd64.deb ... 168s Unpacking python3-numpy-dev:amd64 (1:2.3.5+ds-3) ... 168s Selecting previously unselected package libblas3:amd64. 168s Preparing to unpack .../02-libblas3_3.12.1-7ubuntu1_amd64.deb ... 168s Unpacking libblas3:amd64 (3.12.1-7ubuntu1) ... 168s Selecting previously unselected package libgfortran5:amd64. 168s Preparing to unpack .../03-libgfortran5_15.2.0-11ubuntu1_amd64.deb ... 168s Unpacking libgfortran5:amd64 (15.2.0-11ubuntu1) ... 168s Selecting previously unselected package liblapack3:amd64. 168s Preparing to unpack .../04-liblapack3_3.12.1-7ubuntu1_amd64.deb ... 168s Unpacking liblapack3:amd64 (3.12.1-7ubuntu1) ... 169s Selecting previously unselected package python3-numpy. 169s Preparing to unpack .../05-python3-numpy_1%3a2.3.5+ds-3_amd64.deb ... 169s Unpacking python3-numpy (1:2.3.5+ds-3) ... 169s Selecting previously unselected package python3.13. 169s Preparing to unpack .../06-python3.13_3.13.11-1_amd64.deb ... 169s Unpacking python3.13 (3.13.11-1) ... 169s Selecting previously unselected package m4. 169s Preparing to unpack .../07-m4_1.4.20-2_amd64.deb ... 169s Unpacking m4 (1.4.20-2) ... 169s Selecting previously unselected package autoconf. 169s Preparing to unpack .../08-autoconf_2.72-3.1ubuntu1_all.deb ... 169s Unpacking autoconf (2.72-3.1ubuntu1) ... 169s Selecting previously unselected package autotools-dev. 169s Preparing to unpack .../09-autotools-dev_20240727.1_all.deb ... 169s Unpacking autotools-dev (20240727.1) ... 169s Selecting previously unselected package automake. 169s Preparing to unpack .../10-automake_1%3a1.18.1-3build1_all.deb ... 169s Unpacking automake (1:1.18.1-3build1) ... 169s Selecting previously unselected package autopoint. 169s Preparing to unpack .../11-autopoint_0.23.2-1_all.deb ... 169s Unpacking autopoint (0.23.2-1) ... 169s Selecting previously unselected package libisl23:amd64. 169s Preparing to unpack .../12-libisl23_0.27-1build1_amd64.deb ... 169s Unpacking libisl23:amd64 (0.27-1build1) ... 169s Selecting previously unselected package libmpc3:amd64. 169s Preparing to unpack .../13-libmpc3_1.3.1-2_amd64.deb ... 169s Unpacking libmpc3:amd64 (1.3.1-2) ... 169s Selecting previously unselected package cpp-15-x86-64-linux-gnu. 169s Preparing to unpack .../14-cpp-15-x86-64-linux-gnu_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking cpp-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package cpp-15. 169s Preparing to unpack .../15-cpp-15_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking cpp-15 (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package cpp-x86-64-linux-gnu. 169s Preparing to unpack .../16-cpp-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 169s Unpacking cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 169s Selecting previously unselected package cpp. 169s Preparing to unpack .../17-cpp_4%3a15.2.0-4ubuntu1_amd64.deb ... 169s Unpacking cpp (4:15.2.0-4ubuntu1) ... 169s Selecting previously unselected package libcc1-0:amd64. 169s Preparing to unpack .../18-libcc1-0_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking libcc1-0:amd64 (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package libgomp1:amd64. 169s Preparing to unpack .../19-libgomp1_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking libgomp1:amd64 (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package libitm1:amd64. 169s Preparing to unpack .../20-libitm1_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking libitm1:amd64 (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package libasan8:amd64. 169s Preparing to unpack .../21-libasan8_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking libasan8:amd64 (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package liblsan0:amd64. 169s Preparing to unpack .../22-liblsan0_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking liblsan0:amd64 (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package libtsan2:amd64. 169s Preparing to unpack .../23-libtsan2_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking libtsan2:amd64 (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package libubsan1:amd64. 169s Preparing to unpack .../24-libubsan1_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking libubsan1:amd64 (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package libhwasan0:amd64. 169s Preparing to unpack .../25-libhwasan0_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking libhwasan0:amd64 (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package libquadmath0:amd64. 169s Preparing to unpack .../26-libquadmath0_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking libquadmath0:amd64 (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package libgcc-15-dev:amd64. 169s Preparing to unpack .../27-libgcc-15-dev_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking libgcc-15-dev:amd64 (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package gcc-15-x86-64-linux-gnu. 169s Preparing to unpack .../28-gcc-15-x86-64-linux-gnu_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking gcc-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package gcc-15. 169s Preparing to unpack .../29-gcc-15_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking gcc-15 (15.2.0-11ubuntu1) ... 169s Selecting previously unselected package gcc-x86-64-linux-gnu. 169s Preparing to unpack .../30-gcc-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 169s Unpacking gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 169s Selecting previously unselected package gcc. 169s Preparing to unpack .../31-gcc_4%3a15.2.0-4ubuntu1_amd64.deb ... 169s Unpacking gcc (4:15.2.0-4ubuntu1) ... 169s Selecting previously unselected package libstdc++-15-dev:amd64. 169s Preparing to unpack .../32-libstdc++-15-dev_15.2.0-11ubuntu1_amd64.deb ... 169s Unpacking libstdc++-15-dev:amd64 (15.2.0-11ubuntu1) ... 170s Selecting previously unselected package g++-15-x86-64-linux-gnu. 170s Preparing to unpack .../33-g++-15-x86-64-linux-gnu_15.2.0-11ubuntu1_amd64.deb ... 170s Unpacking g++-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 170s Selecting previously unselected package g++-15. 170s Preparing to unpack .../34-g++-15_15.2.0-11ubuntu1_amd64.deb ... 170s Unpacking g++-15 (15.2.0-11ubuntu1) ... 170s Selecting previously unselected package g++-x86-64-linux-gnu. 170s Preparing to unpack .../35-g++-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 170s Unpacking g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 170s Selecting previously unselected package g++. 170s Preparing to unpack .../36-g++_4%3a15.2.0-4ubuntu1_amd64.deb ... 170s Unpacking g++ (4:15.2.0-4ubuntu1) ... 170s Selecting previously unselected package build-essential. 170s Preparing to unpack .../37-build-essential_12.12ubuntu2_amd64.deb ... 170s Unpacking build-essential (12.12ubuntu2) ... 170s Selecting previously unselected package libllvm18:amd64. 170s Preparing to unpack .../38-libllvm18_1%3a18.1.8-20ubuntu5_amd64.deb ... 170s Unpacking libllvm18:amd64 (1:18.1.8-20ubuntu5) ... 170s Selecting previously unselected package libclang-cpp18. 170s Preparing to unpack .../39-libclang-cpp18_1%3a18.1.8-20ubuntu5_amd64.deb ... 170s Unpacking libclang-cpp18 (1:18.1.8-20ubuntu5) ... 170s Selecting previously unselected package libgc1:amd64. 170s Preparing to unpack .../40-libgc1_1%3a8.2.10-1_amd64.deb ... 170s Unpacking libgc1:amd64 (1:8.2.10-1) ... 170s Selecting previously unselected package libobjc4:amd64. 170s Preparing to unpack .../41-libobjc4_15.2.0-11ubuntu1_amd64.deb ... 170s Unpacking libobjc4:amd64 (15.2.0-11ubuntu1) ... 170s Selecting previously unselected package libobjc-15-dev:amd64. 170s Preparing to unpack .../42-libobjc-15-dev_15.2.0-11ubuntu1_amd64.deb ... 170s Unpacking libobjc-15-dev:amd64 (15.2.0-11ubuntu1) ... 170s Selecting previously unselected package libclang-common-18-dev:amd64. 170s Preparing to unpack .../43-libclang-common-18-dev_1%3a18.1.8-20ubuntu5_amd64.deb ... 170s Unpacking libclang-common-18-dev:amd64 (1:18.1.8-20ubuntu5) ... 170s Selecting previously unselected package llvm-18-linker-tools. 170s Preparing to unpack .../44-llvm-18-linker-tools_1%3a18.1.8-20ubuntu5_amd64.deb ... 170s Unpacking llvm-18-linker-tools (1:18.1.8-20ubuntu5) ... 170s Selecting previously unselected package libclang1-18. 170s Preparing to unpack .../45-libclang1-18_1%3a18.1.8-20ubuntu5_amd64.deb ... 170s Unpacking libclang1-18 (1:18.1.8-20ubuntu5) ... 170s Selecting previously unselected package clang-18. 170s Preparing to unpack .../46-clang-18_1%3a18.1.8-20ubuntu5_amd64.deb ... 170s Unpacking clang-18 (1:18.1.8-20ubuntu5) ... 170s Selecting previously unselected package cython3. 170s Preparing to unpack .../47-cython3_3.1.6+dfsg-1ubuntu1_amd64.deb ... 170s Unpacking cython3 (3.1.6+dfsg-1ubuntu1) ... 171s Selecting previously unselected package libdebhelper-perl. 171s Preparing to unpack .../48-libdebhelper-perl_13.28ubuntu1_all.deb ... 171s Unpacking libdebhelper-perl (13.28ubuntu1) ... 171s Selecting previously unselected package libtool. 171s Preparing to unpack .../49-libtool_2.5.4-9_all.deb ... 171s Unpacking libtool (2.5.4-9) ... 171s Selecting previously unselected package dh-autoreconf. 171s Preparing to unpack .../50-dh-autoreconf_21_all.deb ... 171s Unpacking dh-autoreconf (21) ... 171s Selecting previously unselected package libarchive-zip-perl. 171s Preparing to unpack .../51-libarchive-zip-perl_1.68-1_all.deb ... 171s Unpacking libarchive-zip-perl (1.68-1) ... 171s Selecting previously unselected package libfile-stripnondeterminism-perl. 171s Preparing to unpack .../52-libfile-stripnondeterminism-perl_1.15.0-1build1_all.deb ... 171s Unpacking libfile-stripnondeterminism-perl (1.15.0-1build1) ... 171s Selecting previously unselected package dh-strip-nondeterminism. 171s Preparing to unpack .../53-dh-strip-nondeterminism_1.15.0-1build1_all.deb ... 171s Unpacking dh-strip-nondeterminism (1.15.0-1build1) ... 171s Selecting previously unselected package debugedit. 171s Preparing to unpack .../54-debugedit_1%3a5.2-3_amd64.deb ... 171s Unpacking debugedit (1:5.2-3) ... 171s Selecting previously unselected package dwz. 171s Preparing to unpack .../55-dwz_0.16-2_amd64.deb ... 171s Unpacking dwz (0.16-2) ... 171s Selecting previously unselected package gettext. 171s Preparing to unpack .../56-gettext_0.23.2-1_amd64.deb ... 171s Unpacking gettext (0.23.2-1) ... 171s Selecting previously unselected package intltool-debian. 171s Preparing to unpack .../57-intltool-debian_0.35.0+20060710.6build1_all.deb ... 171s Unpacking intltool-debian (0.35.0+20060710.6build1) ... 171s Selecting previously unselected package po-debconf. 171s Preparing to unpack .../58-po-debconf_1.0.22_all.deb ... 171s Unpacking po-debconf (1.0.22) ... 171s Selecting previously unselected package debhelper. 171s Preparing to unpack .../59-debhelper_13.28ubuntu1_all.deb ... 171s Unpacking debhelper (13.28ubuntu1) ... 171s Selecting previously unselected package dh-python. 171s Preparing to unpack .../60-dh-python_7.20251231_all.deb ... 171s Unpacking dh-python (7.20251231) ... 171s Selecting previously unselected package libexpat1-dev:amd64. 171s Preparing to unpack .../61-libexpat1-dev_2.7.3-1_amd64.deb ... 171s Unpacking libexpat1-dev:amd64 (2.7.3-1) ... 171s Selecting previously unselected package libhwloc15:amd64. 171s Preparing to unpack .../62-libhwloc15_2.12.2-1_amd64.deb ... 171s Unpacking libhwloc15:amd64 (2.12.2-1) ... 171s Selecting previously unselected package libllvmspirvlib18.1:amd64. 171s Preparing to unpack .../63-libllvmspirvlib18.1_18.1.19-1_amd64.deb ... 171s Unpacking libllvmspirvlib18.1:amd64 (18.1.19-1) ... 171s Selecting previously unselected package libpocl2-common. 171s Preparing to unpack .../64-libpocl2-common_6.0-7_all.deb ... 171s Unpacking libpocl2-common (6.0-7) ... 171s Selecting previously unselected package llvm-spirv-18. 171s Preparing to unpack .../65-llvm-spirv-18_18.1.19-1_amd64.deb ... 171s Unpacking llvm-spirv-18 (18.1.19-1) ... 171s Selecting previously unselected package libpocl2t64:amd64. 171s Preparing to unpack .../66-libpocl2t64_6.0-7_amd64.deb ... 171s Unpacking libpocl2t64:amd64 (6.0-7) ... 171s Selecting previously unselected package libpython3.14:amd64. 171s Preparing to unpack .../67-libpython3.14_3.14.2-1_amd64.deb ... 171s Unpacking libpython3.14:amd64 (3.14.2-1) ... 171s Selecting previously unselected package zlib1g-dev:amd64. 171s Preparing to unpack .../68-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu2_amd64.deb ... 171s Unpacking zlib1g-dev:amd64 (1:1.3.dfsg+really1.3.1-1ubuntu2) ... 171s Selecting previously unselected package libpython3.14-dev:amd64. 171s Preparing to unpack .../69-libpython3.14-dev_3.14.2-1_amd64.deb ... 171s Unpacking libpython3.14-dev:amd64 (3.14.2-1) ... 171s Selecting previously unselected package libpython3-dev:amd64. 171s Preparing to unpack .../70-libpython3-dev_3.14.2-1_amd64.deb ... 171s Unpacking libpython3-dev:amd64 (3.14.2-1) ... 171s Selecting previously unselected package libpython3.13-dev:amd64. 171s Preparing to unpack .../71-libpython3.13-dev_3.13.11-1_amd64.deb ... 171s Unpacking libpython3.13-dev:amd64 (3.13.11-1) ... 171s Selecting previously unselected package libpython3-all-dev:amd64. 171s Preparing to unpack .../72-libpython3-all-dev_3.14.2-1_amd64.deb ... 171s Unpacking libpython3-all-dev:amd64 (3.14.2-1) ... 171s Selecting previously unselected package pybuild-plugin-autopkgtest. 171s Preparing to unpack .../73-pybuild-plugin-autopkgtest_7.20251231_all.deb ... 171s Unpacking pybuild-plugin-autopkgtest (7.20251231) ... 171s Selecting previously unselected package python3-all. 171s Preparing to unpack .../74-python3-all_3.14.2-1_amd64.deb ... 171s Unpacking python3-all (3.14.2-1) ... 171s Selecting previously unselected package python3.14-dev. 171s Preparing to unpack .../75-python3.14-dev_3.14.2-1_amd64.deb ... 171s Unpacking python3.14-dev (3.14.2-1) ... 171s Selecting previously unselected package python3-dev. 171s Preparing to unpack .../76-python3-dev_3.14.2-1_amd64.deb ... 171s Unpacking python3-dev (3.14.2-1) ... 171s Selecting previously unselected package python3.13-dev. 171s Preparing to unpack .../77-python3.13-dev_3.13.11-1_amd64.deb ... 171s Unpacking python3.13-dev (3.13.11-1) ... 171s Selecting previously unselected package python3-all-dev. 171s Preparing to unpack .../78-python3-all-dev_3.14.2-1_amd64.deb ... 171s Unpacking python3-all-dev (3.14.2-1) ... 171s Selecting previously unselected package python3-mako. 171s Preparing to unpack .../79-python3-mako_1.3.10-3build1_all.deb ... 171s Unpacking python3-mako (1.3.10-3build1) ... 171s Selecting previously unselected package python3-platformdirs. 171s Preparing to unpack .../80-python3-platformdirs_4.5.1-1_all.deb ... 171s Unpacking python3-platformdirs (4.5.1-1) ... 171s Selecting previously unselected package python3-decorator. 171s Preparing to unpack .../81-python3-decorator_5.2.1-2_all.deb ... 171s Unpacking python3-decorator (5.2.1-2) ... 171s Selecting previously unselected package python3-pytools. 171s Preparing to unpack .../82-python3-pytools_2025.1.2-1_all.deb ... 171s Unpacking python3-pytools (2025.1.2-1) ... 171s Selecting previously unselected package python3-compyle. 171s Preparing to unpack .../83-python3-compyle_0.8.1-11_all.deb ... 171s Unpacking python3-compyle (0.8.1-11) ... 171s Selecting previously unselected package python3-iniconfig. 171s Preparing to unpack .../84-python3-iniconfig_2.1.0-2_all.deb ... 171s Unpacking python3-iniconfig (2.1.0-2) ... 171s Selecting previously unselected package python3-pluggy. 171s Preparing to unpack .../85-python3-pluggy_1.6.0-2_all.deb ... 171s Unpacking python3-pluggy (1.6.0-2) ... 171s Selecting previously unselected package ocl-icd-libopencl1:amd64. 171s Preparing to unpack .../86-ocl-icd-libopencl1_2.3.4-1_amd64.deb ... 171s Unpacking ocl-icd-libopencl1:amd64 (2.3.4-1) ... 171s Selecting previously unselected package pocl-opencl-icd:amd64. 171s Preparing to unpack .../87-pocl-opencl-icd_6.0-7_amd64.deb ... 171s Unpacking pocl-opencl-icd:amd64 (6.0-7) ... 171s Selecting previously unselected package python3-pyopencl. 171s Preparing to unpack .../88-python3-pyopencl_2025.1-2_amd64.deb ... 171s Unpacking python3-pyopencl (2025.1-2) ... 171s Selecting previously unselected package python3-pytest. 171s Preparing to unpack .../89-python3-pytest_9.0.2-2_all.deb ... 171s Unpacking python3-pytest (9.0.2-2) ... 171s Setting up dh-python (7.20251231) ... 172s Setting up python3-iniconfig (2.1.0-2) ... 172s Setting up libarchive-zip-perl (1.68-1) ... 172s Setting up libdebhelper-perl (13.28ubuntu1) ... 172s Setting up m4 (1.4.20-2) ... 172s Setting up libgomp1:amd64 (15.2.0-11ubuntu1) ... 172s Setting up python3-platformdirs (4.5.1-1) ... 172s Setting up python3-decorator (5.2.1-2) ... 172s Setting up autotools-dev (20240727.1) ... 172s Setting up libblas3:amd64 (3.12.1-7ubuntu1) ... 172s update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/x86_64-linux-gnu/libblas.so.3 (libblas.so.3-x86_64-linux-gnu) in auto mode 172s Setting up libexpat1-dev:amd64 (2.7.3-1) ... 172s Setting up libpocl2-common (6.0-7) ... 172s Setting up libquadmath0:amd64 (15.2.0-11ubuntu1) ... 172s Setting up libhwloc15:amd64 (2.12.2-1) ... 172s Setting up libmpc3:amd64 (1.3.1-2) ... 172s Setting up python3-numpy-dev:amd64 (1:2.3.5+ds-3) ... 172s Setting up cython3 (3.1.6+dfsg-1ubuntu1) ... 173s Setting up autopoint (0.23.2-1) ... 173s Setting up libclang-common-18-dev:amd64 (1:18.1.8-20ubuntu5) ... 173s Setting up libgc1:amd64 (1:8.2.10-1) ... 173s Setting up libgfortran5:amd64 (15.2.0-11ubuntu1) ... 173s Setting up autoconf (2.72-3.1ubuntu1) ... 173s Setting up python3-pluggy (1.6.0-2) ... 173s Setting up libubsan1:amd64 (15.2.0-11ubuntu1) ... 173s Setting up zlib1g-dev:amd64 (1:1.3.dfsg+really1.3.1-1ubuntu2) ... 173s Setting up dwz (0.16-2) ... 173s Setting up ocl-icd-libopencl1:amd64 (2.3.4-1) ... 173s Setting up libhwasan0:amd64 (15.2.0-11ubuntu1) ... 173s Setting up libasan8:amd64 (15.2.0-11ubuntu1) ... 173s Setting up libpython3.14:amd64 (3.14.2-1) ... 173s Setting up debugedit (1:5.2-3) ... 173s Setting up python3.13-minimal (3.13.11-1) ... 174s Setting up libpython3.14-dev:amd64 (3.14.2-1) ... 174s Setting up libtsan2:amd64 (15.2.0-11ubuntu1) ... 174s Setting up libisl23:amd64 (0.27-1build1) ... 174s Setting up libcc1-0:amd64 (15.2.0-11ubuntu1) ... 174s Setting up liblsan0:amd64 (15.2.0-11ubuntu1) ... 174s Setting up libitm1:amd64 (15.2.0-11ubuntu1) ... 174s Setting up python3-mako (1.3.10-3build1) ... 174s Setting up libllvm18:amd64 (1:18.1.8-20ubuntu5) ... 174s Setting up automake (1:1.18.1-3build1) ... 174s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 174s Setting up libfile-stripnondeterminism-perl (1.15.0-1build1) ... 174s Setting up libclang1-18 (1:18.1.8-20ubuntu5) ... 174s Setting up liblapack3:amd64 (3.12.1-7ubuntu1) ... 174s update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/x86_64-linux-gnu/liblapack.so.3 (liblapack.so.3-x86_64-linux-gnu) in auto mode 174s Setting up gettext (0.23.2-1) ... 174s Setting up libgcc-15-dev:amd64 (15.2.0-11ubuntu1) ... 174s Setting up libpython3-dev:amd64 (3.14.2-1) ... 174s Setting up python3.14-dev (3.14.2-1) ... 174s Setting up python3.13 (3.13.11-1) ... 174s Setting up python3-pytest (9.0.2-2) ... 175s Setting up python3-all (3.14.2-1) ... 175s Setting up libobjc4:amd64 (15.2.0-11ubuntu1) ... 175s Setting up cpp-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 175s Setting up intltool-debian (0.35.0+20060710.6build1) ... 175s Setting up gcc-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 175s Setting up libstdc++-15-dev:amd64 (15.2.0-11ubuntu1) ... 175s Setting up libpython3.13-dev:amd64 (3.13.11-1) ... 175s Setting up python3-dev (3.14.2-1) ... 175s Setting up python3-numpy (1:2.3.5+ds-3) ... 177s Setting up llvm-18-linker-tools (1:18.1.8-20ubuntu5) ... 177s Setting up dh-strip-nondeterminism (1.15.0-1build1) ... 177s Setting up cpp-15 (15.2.0-11ubuntu1) ... 177s Setting up libllvmspirvlib18.1:amd64 (18.1.19-1) ... 177s Setting up libobjc-15-dev:amd64 (15.2.0-11ubuntu1) ... 177s Setting up libclang-cpp18 (1:18.1.8-20ubuntu5) ... 177s Setting up cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 177s Setting up g++-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 177s Setting up gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 177s Setting up python3.13-dev (3.13.11-1) ... 177s Setting up po-debconf (1.0.22) ... 177s Setting up clang-18 (1:18.1.8-20ubuntu5) ... 177s Setting up gcc-15 (15.2.0-11ubuntu1) ... 177s Setting up libpython3-all-dev:amd64 (3.14.2-1) ... 177s Setting up python3-pytools (2025.1.2-1) ... 177s Setting up llvm-spirv-18 (18.1.19-1) ... 177s Setting up cpp (4:15.2.0-4ubuntu1) ... 177s Setting up g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 177s Setting up g++-15 (15.2.0-11ubuntu1) ... 177s Setting up python3-all-dev (3.14.2-1) ... 177s Setting up libtool (2.5.4-9) ... 177s Setting up libpocl2t64:amd64 (6.0-7) ... 177s Setting up python3-compyle (0.8.1-11) ... 177s Setting up gcc (4:15.2.0-4ubuntu1) ... 177s Setting up dh-autoreconf (21) ... 177s Setting up pocl-opencl-icd:amd64 (6.0-7) ... 177s Setting up g++ (4:15.2.0-4ubuntu1) ... 177s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 177s Setting up build-essential (12.12ubuntu2) ... 177s Setting up python3-pyopencl (2025.1-2) ... 178s Setting up debhelper (13.28ubuntu1) ... 178s Setting up pybuild-plugin-autopkgtest (7.20251231) ... 178s Processing triggers for man-db (2.13.1-1) ... 178s Processing triggers for install-info (7.2-5) ... 178s Processing triggers for libc-bin (2.42-2ubuntu4) ... 178s Processing triggers for systemd (259-1ubuntu2) ... 179s autopkgtest [05:53:37]: test pybuild-autopkgtest: pybuild-autopkgtest 179s autopkgtest [05:53:37]: test pybuild-autopkgtest: [----------------------- 179s pybuild-autopkgtest 180s I: pybuild base:384: cd /tmp/autopkgtest.SR9j29/autopkgtest_tmp/build; python3.13 -m pytest -k "not test_that_multiple_compiles_do_not_occur_for_same_source and not test_const_as_call_arg and not test_const_in_return" --ignore=/tmp/autopkgtest.SR9j29/build.few/src/compyle/tests/test_cuda.py --ignore=/tmp/autopkgtest.SR9j29/build.few/src/compyle/tests/test_parallel.py /tmp/autopkgtest.SR9j29/build.few/src/compyle/tests 180s ============================= test session starts ============================== 180s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 180s rootdir: /tmp/autopkgtest.SR9j29/build.few/src 180s configfile: pyproject.toml 180s plugins: typeguard-4.4.4 180s collected 327 items / 3 deselected / 324 selected 180s 189s ../../build.few/src/compyle/tests/test_array.py ..s..s..s..s..s..s..s..s [ 7%] 244s ..s..s..s..s..s..s...s.sx..s..s..s..s..s..s..s..s..s..s..s..s..s..s..s.. [ 29%] 296s s..s..s..s..s..s..s..s..s..s..ss..s......sss......sss......sss..s [ 49%] 296s ../../build.few/src/compyle/tests/test_ast_utils.py ....... [ 51%] 296s ../../build.few/src/compyle/tests/test_capture_stream.py ..... [ 53%] 296s ../../build.few/src/compyle/tests/test_config.py ............ [ 57%] 296s ../../build.few/src/compyle/tests/test_cython_generator.py ............. [ 61%] 296s .... [ 62%] 297s ../../build.few/src/compyle/tests/test_ext_module.py ........ [ 64%] 297s ../../build.few/src/compyle/tests/test_gpu_struct.py s [ 65%] 297s ../../build.few/src/compyle/tests/test_jit.py .......................... [ 73%] 297s [ 73%] 305s ../../build.few/src/compyle/tests/test_low_level.py s.s..... [ 75%] 306s ../../build.few/src/compyle/tests/test_profile.py ..... [ 77%] 309s ../../build.few/src/compyle/tests/test_template.py ..... [ 78%] 309s ../../build.few/src/compyle/tests/test_translator.py ................... [ 84%] 309s .................................... [ 95%] 309s ../../build.few/src/compyle/tests/test_transpiler.py ... [ 96%] 309s ../../build.few/src/compyle/tests/test_types.py ....... [ 98%] 309s ../../build.few/src/compyle/tests/test_utils.py .... [100%] 309s 309s =============================== warnings summary =============================== 309s compyle/tests/test_array.py: 8 warnings 309s compyle/tests/test_jit.py: 5 warnings 309s compyle/tests/test_translator.py: 93 warnings 309s /usr/lib/python3.13/ast.py:422: DeprecationWarning: visit_Num is deprecated; add visit_Constant 309s return visitor(node) 309s 309s compyle/tests/test_array.py: 4 warnings 309s compyle/tests/test_translator.py: 93 warnings 309s /tmp/autopkgtest.SR9j29/build.few/src/compyle/translator.py:682: DeprecationWarning: Attribute n is deprecated and will be removed in Python 3.14; use value instead 309s return str(node.n) 309s 309s compyle/tests/test_array.py: 31 warnings 309s /usr/lib/python3/dist-packages/pyopencl/__init__.py:519: CompilerWarning: Non-empty compiler output encountered. Set the environment variable PYOPENCL_COMPILER_OUTPUT=1 to see more. 309s lambda: self._prg.build(options_bytes, devices), 309s 309s compyle/tests/test_array.py: 5 warnings 309s compyle/tests/test_template.py: 5 warnings 309s /tmp/autopkgtest.SR9j29/build.few/src/compyle/template.py:52: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 309s template = body[-1].value.s 309s 309s compyle/tests/test_array.py::test_align_multiple[opencl] 309s compyle/tests/test_array.py::test_align_multiple[opencl] 309s compyle/tests/test_translator.py::test_simple_function_with_return 309s compyle/tests/test_translator.py::test_calling_method_of_known_type_in_method 309s compyle/tests/test_translator.py::test_wrapping_class 309s compyle/tests/test_translator.py::test_wrapping_class 309s compyle/tests/test_translator.py::test_wrapping_class_with_ignore_methods 309s /tmp/autopkgtest.SR9j29/build.few/src/compyle/translator.py:228: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead 309s isinstance(body[0].value, ast.Str): 309s 309s compyle/tests/test_array.py::test_radix_sort_by_keys 309s compyle/tests/test_array.py::test_radix_sort_by_keys 309s compyle/tests/test_array.py::test_radix_sort_by_keys 309s compyle/tests/test_array.py::test_radix_sort_by_keys 309s compyle/tests/test_jit.py::TestAnnotationHelper::test_declare_multiple_variables 309s compyle/tests/test_jit.py::TestAnnotationHelper::test_declare_multiple_variables 309s compyle/tests/test_jit.py::TestAnnotationHelper::test_no_return_value 309s compyle/tests/test_jit.py::TestAnnotationHelper::test_no_return_value 309s compyle/tests/test_jit.py::TestAnnotationHelper::test_undeclared_variable_declaration_in_for 309s /tmp/autopkgtest.SR9j29/build.few/src/compyle/jit.py:299: DeprecationWarning: Attribute n is deprecated and will be removed in Python 3.14; use value instead 309s return get_ctype_from_arg(node.n) 309s 309s compyle/tests/test_array.py::test_diff[int32-opencl] 309s compyle/tests/test_array.py::test_diff[float32-opencl] 309s compyle/tests/test_array.py::test_diff[float64-opencl] 309s compyle/tests/test_array.py::test_trapz[opencl] 309s compyle/tests/test_jit.py::TestAnnotationHelper::test_declare_multiple_variables 309s compyle/tests/test_jit.py::TestAnnotationHelper::test_variable_as_call_arg 309s compyle/tests/test_jit.py::TestAnnotationHelper::test_variable_as_call_arg_nonjit 309s /tmp/autopkgtest.SR9j29/build.few/src/compyle/jit.py:205: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead 309s if not isinstance(node.args[0], ast.Str): 309s 309s compyle/tests/test_array.py::test_diff[int32-opencl] 309s compyle/tests/test_array.py::test_diff[float32-opencl] 309s compyle/tests/test_array.py::test_diff[float64-opencl] 309s compyle/tests/test_array.py::test_trapz[opencl] 309s compyle/tests/test_jit.py::TestAnnotationHelper::test_declare_multiple_variables 309s compyle/tests/test_jit.py::TestAnnotationHelper::test_variable_as_call_arg 309s compyle/tests/test_jit.py::TestAnnotationHelper::test_variable_as_call_arg_nonjit 309s /tmp/autopkgtest.SR9j29/build.few/src/compyle/jit.py:207: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 309s type_str = node.args[0].s 309s 309s compyle/tests/test_array.py: 3 warnings 309s compyle/tests/test_low_level.py: 2 warnings 309s compyle/tests/test_translator.py: 14 warnings 309s /tmp/autopkgtest.SR9j29/build.few/src/compyle/translator.py:344: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead 309s if not isinstance(right.args[0], ast.Str): 309s 309s compyle/tests/test_array.py: 3 warnings 309s compyle/tests/test_low_level.py: 2 warnings 309s compyle/tests/test_translator.py: 14 warnings 309s /tmp/autopkgtest.SR9j29/build.few/src/compyle/translator.py:346: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 309s type = right.args[0].s 309s 309s compyle/tests/test_array.py::test_trapz[cython] 309s compyle/tests/test_array.py::test_trapz[opencl] 309s /tmp/autopkgtest.SR9j29/build.few/src/compyle/tests/test_array.py:452: DeprecationWarning: `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`. 309s assert(array.trapz(y) == np.trapz(yn)) 309s 309s compyle/tests/test_array.py::test_trapz[cython] 309s compyle/tests/test_array.py::test_trapz[opencl] 309s /tmp/autopkgtest.SR9j29/build.few/src/compyle/tests/test_array.py:453: DeprecationWarning: `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`. 309s assert(array.trapz(y, x,) == np.trapz(yn, xn)) 309s 309s compyle/tests/test_array.py::test_trapz[cython] 309s compyle/tests/test_array.py::test_trapz[opencl] 309s /tmp/autopkgtest.SR9j29/build.few/src/compyle/tests/test_array.py:454: DeprecationWarning: `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`. 309s assert(array.trapz(y, dx=3) == np.trapz(yn, dx=3)) 309s 309s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_function_with_annotation 309s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_declare 309s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_declare 309s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_matrix 309s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_matrix 309s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_python3_annotation 309s compyle/tests/test_low_level.py::TestCython::test_cython_code_with_return_and_nested_call 309s compyle/tests/test_low_level.py::TestCython::test_cython_code_with_return_and_nested_call 309s compyle/tests/test_low_level.py::TestCython::test_cython_with_externs 309s /tmp/autopkgtest.SR9j29/build.few/src/compyle/cython_generator.py:129: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead 309s if not isinstance(arg0, ast.Str): 309s 309s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_function_with_annotation 309s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_declare 309s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_declare 309s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_matrix 309s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_matrix 309s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_python3_annotation 309s compyle/tests/test_low_level.py::TestCython::test_cython_code_with_return_and_nested_call 309s compyle/tests/test_low_level.py::TestCython::test_cython_code_with_return_and_nested_call 309s compyle/tests/test_low_level.py::TestCython::test_cython_with_externs 309s /tmp/autopkgtest.SR9j29/build.few/src/compyle/cython_generator.py:133: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 309s return get_declare_info(arg0.s) 309s 309s compyle/tests/test_ext_module.py::TestExtModule::test_that_multiple_writes_do_not_occur_for_same_source 309s compyle/tests/test_ext_module.py::TestExtModule::test_that_multiple_writes_do_not_occur_for_same_source 309s compyle/tests/test_ext_module.py::TestExtModule::test_that_multiple_writes_do_not_occur_for_same_source 309s compyle/tests/test_ext_module.py::TestExtModule::test_that_multiple_writes_do_not_occur_for_same_source 310s compyle/tests/test_ext_module.py::TestExtModule::test_that_multiple_writes_do_not_occur_for_same_source 310s /usr/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=2644) is multi-threaded, use of fork() may lead to deadlocks in the child. 310s self.pid = os.fork() 310s 310s compyle/tests/test_jit.py::TestAnnotationHelper::test_cast_return_type 310s /tmp/autopkgtest.SR9j29/build.few/src/compyle/jit.py:211: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead 310s if not isinstance(node.args[1], ast.Str): 310s 310s compyle/tests/test_jit.py::TestAnnotationHelper::test_cast_return_type 310s /tmp/autopkgtest.SR9j29/build.few/src/compyle/jit.py:213: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 310s return node.args[1].s 310s 310s compyle/tests/test_jit.py::TestAnnotationHelper::test_non_jit_call_as_call_arg 310s /tmp/autopkgtest.SR9j29/build.few/src/compyle/jit.py:202: UserWarning: 310s In code in line 5: 310s 310s return g(sin(a)) 310s ^ 310s 310s 310s Function called is not marked by the annotate decorator. Argument 310s type defaulting to 'double'. If the type is not 'double', store 310s the value in a variable of appropriate type and use the variable 310s 310s warnings.warn(msg) 310s 310s compyle/tests/test_jit.py::TestAnnotationHelper::test_non_jit_call_in_return 310s /tmp/autopkgtest.SR9j29/build.few/src/compyle/jit.py:202: UserWarning: 310s In code in line 5: 310s 310s return sin(a) 310s ^ 310s 310s 310s Function called is not marked by the annotate decorator. Argument 310s type defaulting to 'double'. If the type is not 'double', store 310s the value in a variable of appropriate type and use the variable 310s 310s warnings.warn(msg) 310s 310s compyle/tests/test_template.py::test_simple_template 310s compyle/tests/test_template.py::test_simple_template 310s compyle/tests/test_template.py::test_that_source_code_is_available 310s /tmp/autopkgtest.SR9j29/build.few/src/compyle/template.py:53: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 310s docstring = body[0].value.s if len(body) == 2 else '' 310s 310s compyle/tests/test_translator.py::test_calling_printf_with_string 310s compyle/tests/test_translator.py::test_calling_printf_with_string 310s /usr/lib/python3.13/ast.py:422: DeprecationWarning: visit_Str is deprecated; add visit_Constant 310s return visitor(node) 310s 310s compyle/tests/test_translator.py::test_calling_printf_with_string 310s compyle/tests/test_translator.py::test_calling_printf_with_string 310s /tmp/autopkgtest.SR9j29/build.few/src/compyle/translator.py:700: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 310s return r'"%s"' % node.s 310s 310s compyle/tests/test_translator.py::test_bool_true_false_and_none 310s compyle/tests/test_translator.py::test_bool_true_false_and_none 310s compyle/tests/test_translator.py::test_bool_true_false_and_none 310s compyle/tests/test_translator.py::test_bool_true_false_and_none 310s /usr/lib/python3.13/ast.py:422: DeprecationWarning: visit_NameConstant is deprecated; add visit_Constant 310s return visitor(node) 310s 310s compyle/tests/test_translator.py::test_cast_works 310s compyle/tests/test_translator.py::test_cast_works 310s /tmp/autopkgtest.SR9j29/build.few/src/compyle/translator.py:388: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 310s return '(%s) (%s)' % (node.args[1].s, self.visit(node.args[0])) 310s 310s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 310s = 266 passed, 57 skipped, 3 deselected, 1 xfailed, 358 warnings in 129.46s (0:02:09) = 310s I: pybuild base:384: cd /tmp/autopkgtest.SR9j29/autopkgtest_tmp/build; python3.14 -m pytest -k "not test_that_multiple_compiles_do_not_occur_for_same_source and not test_const_as_call_arg and not test_const_in_return" --ignore=/tmp/autopkgtest.SR9j29/build.few/src/compyle/tests/test_cuda.py --ignore=/tmp/autopkgtest.SR9j29/build.few/src/compyle/tests/test_parallel.py /tmp/autopkgtest.SR9j29/build.few/src/compyle/tests 310s ============================= test session starts ============================== 310s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 310s rootdir: /tmp/autopkgtest.SR9j29/build.few/src 310s configfile: pyproject.toml 310s plugins: typeguard-4.4.4 310s collected 327 items / 3 deselected / 324 selected 310s 318s ../../build.few/src/compyle/tests/test_array.py ..s..s..s..s..s..s..s.Fs [ 7%] 353s ..sFFs..s..s..sF.sFF.s.sx..s..s..s.Fs.Fs.Fs.Fs..s..s..s..s..s..s..s..s.. [ 29%] 402s s..s..s..s..s..s..s..s..s..s..ss..s......sss......sss...FFFsss..s [ 49%] 402s ../../build.few/src/compyle/tests/test_ast_utils.py ....... [ 51%] 402s ../../build.few/src/compyle/tests/test_capture_stream.py ..... [ 53%] 402s ../../build.few/src/compyle/tests/test_config.py ............ [ 57%] 402s ../../build.few/src/compyle/tests/test_cython_generator.py ......F.F.F.F [ 61%] 402s .... [ 62%] 403s ../../build.few/src/compyle/tests/test_ext_module.py ........ [ 64%] 403s ../../build.few/src/compyle/tests/test_gpu_struct.py s [ 65%] 404s ../../build.few/src/compyle/tests/test_jit.py ........F.F............FF. [ 73%] 404s [ 73%] 405s ../../build.few/src/compyle/tests/test_low_level.py sFsFFF.. [ 75%] 405s ../../build.few/src/compyle/tests/test_profile.py ..... [ 77%] 405s ../../build.few/src/compyle/tests/test_template.py FFFF. [ 78%] 405s ../../build.few/src/compyle/tests/test_translator.py FFFFFFFF.FFF.F...FF [ 84%] 406s FF..FFFFFFFFFF...FFFFF...FF...FF...F [ 95%] 406s ../../build.few/src/compyle/tests/test_transpiler.py ... [ 96%] 406s ../../build.few/src/compyle/tests/test_types.py ....... [ 98%] 406s ../../build.few/src/compyle/tests/test_utils.py .... [100%] 406s 406s =================================== FAILURES =================================== 406s _____________________________ test_remove[opencl] ______________________________ 406s 406s backend = 'opencl' 406s 406s @check_all_backends 406s def test_remove(backend): 406s check_import(backend) 406s 406s # Given 406s dev_array = Array(np.int32, backend=backend) 406s orig_array = array.arange(0, 16, 1, dtype=np.int32, 406s backend=backend) 406s dev_array.set_data(orig_array) 406s indices = array.arange(0, 8, 1, dtype=np.int32, backend=backend) 406s 406s # When 406s > dev_array.remove(indices) 406s 406s ../../build.few/src/compyle/tests/test_array.py:157: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/profile.py:72: in wrapper 406s return method(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/array.py:1154: in remove 406s fill_if_remove_knl(indices, if_remove) 406s ../../build.few/src/compyle/parallel.py:573: in __call__ 406s self.elementwise(*args, **kwargs) 406s ../../build.few/src/compyle/profile.py:72: in wrapper 406s return method(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:359: in __call__ 406s c_func = self._generate_kernel(*args) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:29: in wrapper 406s setattr(f, 'cached_kernel', {key_val: method(*args)}) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:347: in _generate_kernel 406s return self._generate(declarations=declarations) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/parallel.py:474: in _generate 406s all_source = knl.get_kernel(False)[0].program.source 406s ^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pytools/__init__.py:758: in wrapper 406s result = function(obj, *args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:244: in get_kernel 406s knl, arg_descrs = get_elwise_kernel_and_types( 406s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:169: in get_elwise_kernel_and_types 406s prg = get_elwise_program( 406s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:116: in get_elwise_program 406s return cl.Program(context, source).build(options) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pyopencl/__init__.py:518: in build 406s self._build_and_catch_errors( 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s build_func = . at 0x7e6199b02da0> 406s options_bytes = b'-I /usr/lib/python3/dist-packages/pyopencl/cl', source = None 406s 406s def _build_and_catch_errors(self, build_func, options_bytes, source=None): 406s try: 406s return build_func() 406s except RuntimeError as e: 406s msg = str(e) 406s if options_bytes: 406s msg = msg + "\n(options: %s)" % options_bytes.decode("utf-8") 406s 406s if source is not None: 406s from tempfile import NamedTemporaryFile 406s srcfile = NamedTemporaryFile(mode="wt", delete=False, suffix=".cl") 406s try: 406s srcfile.write(source) 406s finally: 406s srcfile.close() 406s 406s msg = msg + "\n(source saved as %s)" % srcfile.name 406s 406s code = e.code 406s routine = e.routine 406s 406s err = RuntimeError( 406s _cl._ErrorRecord( 406s msg=msg, 406s code=code, 406s routine=routine)) 406s 406s # Python 3.2 outputs the whole list of currently active exceptions 406s # This serves to remove one (redundant) level from that nesting. 406s > raise err 406s E pyopencl._cl.RuntimeError: clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE 406s E 406s E Build on : 406s E 406s E error: /tmp/autopkgtest.SR9j29/autopkgtest_tmp/.cache/pocl/kcache/tempfile_NbUoLp.cl:74:29: use of undeclared identifier 'None' 406s E warning: /tmp/autopkgtest.SR9j29/autopkgtest_tmp/.cache/pocl/kcache/tempfile_NbUoLp.cl:62:9: 'max' macro redefined 406s E warning: /tmp/autopkgtest.SR9j29/autopkgtest_tmp/.cache/pocl/kcache/tempfile_NbUoLp.cl:62:9: 'max' macro redefined 406s E Device cpu-haswell-AMD EPYC-Rome Processor failed to build the program 406s E 406s E (options: -I /usr/lib/python3/dist-packages/pyopencl/cl) 406s 406s /usr/lib/python3/dist-packages/pyopencl/__init__.py:574: RuntimeError 406s ----------------------------- Captured stderr call ----------------------------- 406s 1 warning generated. 406s 2 warnings and 1 error generated. 406s _________________________ test_align_multiple[cython] __________________________ 406s 406s args = ([, ], ) 406s kwargs = {'backend': 'cython'}, key = ('guintp', 'gfloatp', 'cython', False) 406s 406s def wrapper(*args, **kwargs): 406s key = key_func(*args, **kwargs) 406s try: 406s > return func._memoize_dic[key] 406s ^^^^^^^^^^^^^^^^^ 406s E AttributeError: 'function' object has no attribute '_memoize_dic' 406s 406s /usr/lib/python3/dist-packages/pytools/__init__.py:684: AttributeError 406s 406s During handling of the above exception, another exception occurred: 406s 406s backend = 'cython' 406s 406s @check_all_backends 406s def test_align_multiple(backend): 406s check_import(backend) 406s 406s # Given 406s dev_array_a = Array(np.uint32, backend=backend) 406s dev_array_b = Array(np.float32, backend=backend) 406s orig_array_a = array.arange(0, 1024, 1, dtype=np.uint32, backend=backend) 406s orig_array_b = array.arange( 406s 1024, 2048, 1, dtype=np.float32, backend=backend) 406s dev_array_a.set_data(orig_array_a) 406s dev_array_b.set_data(orig_array_b) 406s 406s indices = array.arange(1023, -1, -1, dtype=np.int64, backend=backend) 406s 406s # When 406s > dev_array_a, dev_array_b = array.align([dev_array_a, dev_array_b], 406s indices) 406s 406s ../../build.few/src/compyle/tests/test_array.py:196: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/array.py:825: in align 406s align_multiple_elwise = get_align_kernel(ary_list, order, backend=backend) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pytools/__init__.py:687: in wrapper 406s result = func(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/array.py:806: in get_align_kernel 406s align_multiple_elwise = parallel.Elementwise(align_multiple_knl.function, 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:24: in function 406s self._function = self._make_function() 406s ^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:28: in _make_function 406s src, annotations = self._get_code() 406s ^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s 406s def _get_code(self): 406s m = ast.parse(dedent(inspect.getsource(self.template))) 406s argspec = getfullargspec(self.template) 406s args = argspec.args 406s if args[0] == 'self': 406s args = args[1:] 406s extra_args, extra_annotations = self.extra_args() 406s args += extra_args 406s arg_string = ', '.join(args) 406s body = m.body[0].body 406s > template = body[-1].value.s 406s ^^^^^^^^^^^^^^^^ 406s E AttributeError: 'Constant' object has no attribute 's' 406s 406s ../../build.few/src/compyle/template.py:52: AttributeError 406s _________________________ test_align_multiple[opencl] __________________________ 406s 406s args = ([, ], ) 406s kwargs = {'backend': 'opencl'}, key = ('guintp', 'gfloatp', 'opencl', False) 406s 406s def wrapper(*args, **kwargs): 406s key = key_func(*args, **kwargs) 406s try: 406s > return func._memoize_dic[key] 406s ^^^^^^^^^^^^^^^^^ 406s E AttributeError: 'function' object has no attribute '_memoize_dic' 406s 406s /usr/lib/python3/dist-packages/pytools/__init__.py:684: AttributeError 406s 406s During handling of the above exception, another exception occurred: 406s 406s backend = 'opencl' 406s 406s @check_all_backends 406s def test_align_multiple(backend): 406s check_import(backend) 406s 406s # Given 406s dev_array_a = Array(np.uint32, backend=backend) 406s dev_array_b = Array(np.float32, backend=backend) 406s orig_array_a = array.arange(0, 1024, 1, dtype=np.uint32, backend=backend) 406s orig_array_b = array.arange( 406s 1024, 2048, 1, dtype=np.float32, backend=backend) 406s dev_array_a.set_data(orig_array_a) 406s dev_array_b.set_data(orig_array_b) 406s 406s indices = array.arange(1023, -1, -1, dtype=np.int64, backend=backend) 406s 406s # When 406s > dev_array_a, dev_array_b = array.align([dev_array_a, dev_array_b], 406s indices) 406s 406s ../../build.few/src/compyle/tests/test_array.py:196: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/array.py:825: in align 406s align_multiple_elwise = get_align_kernel(ary_list, order, backend=backend) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pytools/__init__.py:687: in wrapper 406s result = func(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/array.py:806: in get_align_kernel 406s align_multiple_elwise = parallel.Elementwise(align_multiple_knl.function, 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:24: in function 406s self._function = self._make_function() 406s ^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:28: in _make_function 406s src, annotations = self._get_code() 406s ^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s 406s def _get_code(self): 406s m = ast.parse(dedent(inspect.getsource(self.template))) 406s argspec = getfullargspec(self.template) 406s args = argspec.args 406s if args[0] == 'self': 406s args = args[1:] 406s extra_args, extra_annotations = self.extra_args() 406s args += extra_args 406s arg_string = ', '.join(args) 406s body = m.body[0].body 406s > template = body[-1].value.s 406s ^^^^^^^^^^^^^^^^ 406s E AttributeError: 'Constant' object has no attribute 's' 406s 406s ../../build.few/src/compyle/template.py:52: AttributeError 406s __________________________ test_sort_by_keys[cython] ___________________________ 406s 406s args = ([, ], ) 406s kwargs = {'backend': 'cython'}, key = ('gintp', 'gintp', 'cython', False) 406s 406s def wrapper(*args, **kwargs): 406s key = key_func(*args, **kwargs) 406s try: 406s > return func._memoize_dic[key] 406s ^^^^^^^^^^^^^^^^^ 406s E AttributeError: 'function' object has no attribute '_memoize_dic' 406s 406s /usr/lib/python3/dist-packages/pytools/__init__.py:684: AttributeError 406s 406s During handling of the above exception, another exception occurred: 406s 406s backend = 'cython' 406s 406s @check_all_backends 406s def test_sort_by_keys(backend): 406s check_import(backend) 406s 406s # Given 406s pre_nparr1 = np.random.randint(0, 100, 16, dtype=np.int32) 406s pre_nparr2 = np.random.randint(0, 100, 16, dtype=np.int32) 406s 406s ## drop non unique values 406s nparr1, indices = np.unique(pre_nparr1, return_index=True) 406s nparr2 = pre_nparr2[indices] 406s 406s dev_array1, dev_array2 = array.wrap(nparr1, nparr2, backend=backend) 406s 406s # When 406s > out_array1, out_array2 = array.sort_by_keys([dev_array1, dev_array2]) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_array.py:271: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/profile.py:72: in wrapper 406s return method(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/array.py:626: in sort_by_keys 406s out_list = align(ary_list, order, out_list=out_list, 406s ../../build.few/src/compyle/array.py:825: in align 406s align_multiple_elwise = get_align_kernel(ary_list, order, backend=backend) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pytools/__init__.py:687: in wrapper 406s result = func(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/array.py:806: in get_align_kernel 406s align_multiple_elwise = parallel.Elementwise(align_multiple_knl.function, 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:24: in function 406s self._function = self._make_function() 406s ^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:28: in _make_function 406s src, annotations = self._get_code() 406s ^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s 406s def _get_code(self): 406s m = ast.parse(dedent(inspect.getsource(self.template))) 406s argspec = getfullargspec(self.template) 406s args = argspec.args 406s if args[0] == 'self': 406s args = args[1:] 406s extra_args, extra_annotations = self.extra_args() 406s args += extra_args 406s arg_string = ', '.join(args) 406s body = m.body[0].body 406s > template = body[-1].value.s 406s ^^^^^^^^^^^^^^^^ 406s E AttributeError: 'Constant' object has no attribute 's' 406s 406s ../../build.few/src/compyle/template.py:52: AttributeError 406s ___________________________ test_radix_sort_by_keys ____________________________ 406s 406s def test_radix_sort_by_keys(): 406s backend = 'cython' 406s for use_openmp in [True, False]: 406s get_config().use_openmp = use_openmp 406s # Given 406s pre_nparr1 = np.random.randint(0, 100, 16, dtype=np.int32) 406s pre_nparr2 = np.random.randint(0, 100, 16, dtype=np.int32) 406s 406s ## drop non unique values 406s nparr1, indices = np.unique(pre_nparr1, return_index=True) 406s nparr2 = pre_nparr2[indices] 406s 406s dev_array1, dev_array2 = array.wrap(nparr1, nparr2, backend=backend) 406s 406s # When 406s > out_array1, out_array2 = array.sort_by_keys([dev_array1, dev_array2], 406s use_radix_sort=True) 406s 406s ../../build.few/src/compyle/tests/test_array.py:296: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/profile.py:72: in wrapper 406s return method(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/array.py:621: in sort_by_keys 406s out_list, order = radix_sort(ary_list, out_list=out_list, 406s ../../build.few/src/compyle/sort.py:66: in radix_sort 406s sort_bit_knl = Scan(input_sort_bit, output_sort_bit.function, 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:24: in function 406s self._function = self._make_function() 406s ^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:28: in _make_function 406s src, annotations = self._get_code() 406s ^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s 406s def _get_code(self): 406s m = ast.parse(dedent(inspect.getsource(self.template))) 406s argspec = getfullargspec(self.template) 406s args = argspec.args 406s if args[0] == 'self': 406s args = args[1:] 406s extra_args, extra_annotations = self.extra_args() 406s args += extra_args 406s arg_string = ', '.join(args) 406s body = m.body[0].body 406s > template = body[-1].value.s 406s ^^^^^^^^^^^^^^^^ 406s E AttributeError: 'Constant' object has no attribute 's' 406s 406s ../../build.few/src/compyle/template.py:52: AttributeError 406s ____________________ test_sort_by_keys_with_output[cython] _____________________ 406s 406s args = ([, ], ) 406s kwargs = {'backend': 'cython'}, key = ('gintp', 'gintp', 'cython', True) 406s 406s def wrapper(*args, **kwargs): 406s key = key_func(*args, **kwargs) 406s try: 406s > return func._memoize_dic[key] 406s ^^^^^^^^^^^^^^^^^ 406s E AttributeError: 'function' object has no attribute '_memoize_dic' 406s 406s /usr/lib/python3/dist-packages/pytools/__init__.py:684: AttributeError 406s 406s During handling of the above exception, another exception occurred: 406s 406s backend = 'cython' 406s 406s @pytest.mark.parametrize( 406s 'backend', ['cython', 'opencl', 406s pytest.param('cuda', marks=pytest.mark.xfail)]) 406s def test_sort_by_keys_with_output(backend): 406s check_import(backend) 406s 406s # Given 406s pre_nparr1 = np.random.randint(0, 100, 16, dtype=np.int32) 406s pre_nparr2 = np.random.randint(0, 100, 16, dtype=np.int32) 406s 406s ## drop non unique values 406s nparr1, indices = np.unique(pre_nparr1, return_index=True) 406s nparr2 = pre_nparr2[indices] 406s 406s dev_array1, dev_array2 = array.wrap(nparr1, nparr2, backend=backend) 406s out_arrays = [ 406s array.zeros_like(dev_array1), 406s array.zeros_like(dev_array2)] 406s 406s # When 406s > array.sort_by_keys([dev_array1, dev_array2], 406s out_list=out_arrays, use_radix_sort=False) 406s 406s ../../build.few/src/compyle/tests/test_array.py:330: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/profile.py:72: in wrapper 406s return method(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/array.py:626: in sort_by_keys 406s out_list = align(ary_list, order, out_list=out_list, 406s ../../build.few/src/compyle/array.py:825: in align 406s align_multiple_elwise = get_align_kernel(ary_list, order, backend=backend) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pytools/__init__.py:687: in wrapper 406s result = func(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/array.py:806: in get_align_kernel 406s align_multiple_elwise = parallel.Elementwise(align_multiple_knl.function, 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:24: in function 406s self._function = self._make_function() 406s ^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:28: in _make_function 406s src, annotations = self._get_code() 406s ^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s 406s def _get_code(self): 406s m = ast.parse(dedent(inspect.getsource(self.template))) 406s argspec = getfullargspec(self.template) 406s args = argspec.args 406s if args[0] == 'self': 406s args = args[1:] 406s extra_args, extra_annotations = self.extra_args() 406s args += extra_args 406s arg_string = ', '.join(args) 406s body = m.body[0].body 406s > template = body[-1].value.s 406s ^^^^^^^^^^^^^^^^ 406s E AttributeError: 'Constant' object has no attribute 's' 406s 406s ../../build.few/src/compyle/template.py:52: AttributeError 406s ___________________________ test_diff[int32-opencl] ____________________________ 406s 406s backend = 'opencl', dtype = 406s 406s @check_all_backends 406s @check_all_dtypes 406s def test_diff(backend, dtype): 406s check_import(backend) 406s if dtype == np.float64: 406s get_config().use_double = True 406s dev_array = array.ones(1, dtype=dtype, backend=backend) 406s with pytest.raises(ValueError): 406s y = array.diff(dev_array, 1) 406s y = array.diff(dev_array, 0) 406s assert(y[0] == dev_array[0]) 406s 406s dev_array = array.ones(2, dtype=dtype, backend=backend) 406s with pytest.raises(ValueError): 406s y = array.diff(dev_array, -1) 406s > y = array.diff(dev_array, 1) 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_array.py:434: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/array.py:449: in diff 406s e(y, a, binom_coeff, len(binom_coeff)) 406s ../../build.few/src/compyle/parallel.py:573: in __call__ 406s self.elementwise(*args, **kwargs) 406s ../../build.few/src/compyle/profile.py:72: in wrapper 406s return method(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:359: in __call__ 406s c_func = self._generate_kernel(*args) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:29: in wrapper 406s setattr(f, 'cached_kernel', {key_val: method(*args)}) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:345: in _generate_kernel 406s declarations = helper.annotate() 406s ^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:167: in annotate 406s self.visit(code) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:277: in visit_Assign 406s right_type = self.visit(right) 406s ^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:242: in visit_Call 406s return self.visit_declare(node) 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None), Constant(value=1, kind=None)], keywords=[]) 406s 406s def visit_declare(self, node): 406s > if not isinstance(node.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/jit.py:205: AttributeError 406s __________________________ test_diff[float32-opencl] ___________________________ 406s 406s backend = 'opencl', dtype = 406s 406s @check_all_backends 406s @check_all_dtypes 406s def test_diff(backend, dtype): 406s check_import(backend) 406s if dtype == np.float64: 406s get_config().use_double = True 406s dev_array = array.ones(1, dtype=dtype, backend=backend) 406s with pytest.raises(ValueError): 406s y = array.diff(dev_array, 1) 406s y = array.diff(dev_array, 0) 406s assert(y[0] == dev_array[0]) 406s 406s dev_array = array.ones(2, dtype=dtype, backend=backend) 406s with pytest.raises(ValueError): 406s y = array.diff(dev_array, -1) 406s > y = array.diff(dev_array, 1) 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_array.py:434: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/array.py:449: in diff 406s e(y, a, binom_coeff, len(binom_coeff)) 406s ../../build.few/src/compyle/parallel.py:573: in __call__ 406s self.elementwise(*args, **kwargs) 406s ../../build.few/src/compyle/profile.py:72: in wrapper 406s return method(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:359: in __call__ 406s c_func = self._generate_kernel(*args) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:29: in wrapper 406s setattr(f, 'cached_kernel', {key_val: method(*args)}) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:345: in _generate_kernel 406s declarations = helper.annotate() 406s ^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:167: in annotate 406s self.visit(code) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:277: in visit_Assign 406s right_type = self.visit(right) 406s ^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:242: in visit_Call 406s return self.visit_declare(node) 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None), Constant(value=1, kind=None)], keywords=[]) 406s 406s def visit_declare(self, node): 406s > if not isinstance(node.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/jit.py:205: AttributeError 406s __________________________ test_diff[float64-opencl] ___________________________ 406s 406s backend = 'opencl', dtype = 406s 406s @check_all_backends 406s @check_all_dtypes 406s def test_diff(backend, dtype): 406s check_import(backend) 406s if dtype == np.float64: 406s get_config().use_double = True 406s dev_array = array.ones(1, dtype=dtype, backend=backend) 406s with pytest.raises(ValueError): 406s y = array.diff(dev_array, 1) 406s y = array.diff(dev_array, 0) 406s assert(y[0] == dev_array[0]) 406s 406s dev_array = array.ones(2, dtype=dtype, backend=backend) 406s with pytest.raises(ValueError): 406s y = array.diff(dev_array, -1) 406s > y = array.diff(dev_array, 1) 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_array.py:434: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/array.py:449: in diff 406s e(y, a, binom_coeff, len(binom_coeff)) 406s ../../build.few/src/compyle/parallel.py:573: in __call__ 406s self.elementwise(*args, **kwargs) 406s ../../build.few/src/compyle/profile.py:72: in wrapper 406s return method(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:359: in __call__ 406s c_func = self._generate_kernel(*args) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:29: in wrapper 406s setattr(f, 'cached_kernel', {key_val: method(*args)}) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:345: in _generate_kernel 406s declarations = helper.annotate() 406s ^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:167: in annotate 406s self.visit(code) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:277: in visit_Assign 406s right_type = self.visit(right) 406s ^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:242: in visit_Call 406s return self.visit_declare(node) 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None), Constant(value=1, kind=None)], keywords=[]) 406s 406s def visit_declare(self, node): 406s > if not isinstance(node.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/jit.py:205: AttributeError 406s ______________________________ test_trapz[opencl] ______________________________ 406s 406s backend = 'opencl' 406s 406s @check_all_backends 406s def test_trapz(backend): 406s check_import(backend) 406s x = array.linspace(0, 5, 6, dtype=np.float32, backend=backend) 406s y = array.linspace(0, 5, 6, dtype=np.float32, backend=backend) 406s xn = np.linspace(0, 5, 6, dtype=np.float32) 406s yn = np.linspace(0, 5, 6, dtype=np.float32) 406s assert(array.trapz(y) == np.trapz(yn)) 406s > assert(array.trapz(y, x,) == np.trapz(yn, xn)) 406s ^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_array.py:453: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/array.py:516: in trapz 406s d = diff(x, 1, backend=backend) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/array.py:449: in diff 406s e(y, a, binom_coeff, len(binom_coeff)) 406s ../../build.few/src/compyle/parallel.py:573: in __call__ 406s self.elementwise(*args, **kwargs) 406s ../../build.few/src/compyle/profile.py:72: in wrapper 406s return method(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:359: in __call__ 406s c_func = self._generate_kernel(*args) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:29: in wrapper 406s setattr(f, 'cached_kernel', {key_val: method(*args)}) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:345: in _generate_kernel 406s declarations = helper.annotate() 406s ^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:167: in annotate 406s self.visit(code) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:277: in visit_Assign 406s right_type = self.visit(right) 406s ^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:242: in visit_Call 406s return self.visit_declare(node) 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None), Constant(value=1, kind=None)], keywords=[]) 406s 406s def visit_declare(self, node): 406s > if not isinstance(node.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/jit.py:205: AttributeError 406s _________________________ test_take_bool[opencl-int32] _________________________ 406s 406s dtype = , backend = 'opencl' 406s 406s @check_all_dtypes 406s @check_all_backends 406s def test_take_bool(dtype, backend): 406s check_import(backend) 406s if dtype == np.float64: 406s get_config().use_double = True 406s 406s # Given 406s x = array.arange(0, 10, 1, backend=backend, dtype=dtype) 406s cond = x > 5 406s 406s # When 406s > out = array.take_bool(x, cond) 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_array.py:569: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/array.py:771: in take_bool 406s e(condition, ary, cumsum_ar, out_ar) 406s ../../build.few/src/compyle/parallel.py:573: in __call__ 406s self.elementwise(*args, **kwargs) 406s ../../build.few/src/compyle/profile.py:72: in wrapper 406s return method(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:359: in __call__ 406s c_func = self._generate_kernel(*args) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:31: in wrapper 406s f.cached_kernel[key_val] = method(*args) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:347: in _generate_kernel 406s return self._generate(declarations=declarations) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/parallel.py:474: in _generate 406s all_source = knl.get_kernel(False)[0].program.source 406s ^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pytools/__init__.py:758: in wrapper 406s result = function(obj, *args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:244: in get_kernel 406s knl, arg_descrs = get_elwise_kernel_and_types( 406s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:169: in get_elwise_kernel_and_types 406s prg = get_elwise_program( 406s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:116: in get_elwise_program 406s return cl.Program(context, source).build(options) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pyopencl/__init__.py:518: in build 406s self._build_and_catch_errors( 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s build_func = . at 0x7e6198d12fb0> 406s options_bytes = b'-I /usr/lib/python3/dist-packages/pyopencl/cl', source = None 406s 406s def _build_and_catch_errors(self, build_func, options_bytes, source=None): 406s try: 406s return build_func() 406s except RuntimeError as e: 406s msg = str(e) 406s if options_bytes: 406s msg = msg + "\n(options: %s)" % options_bytes.decode("utf-8") 406s 406s if source is not None: 406s from tempfile import NamedTemporaryFile 406s srcfile = NamedTemporaryFile(mode="wt", delete=False, suffix=".cl") 406s try: 406s srcfile.write(source) 406s finally: 406s srcfile.close() 406s 406s msg = msg + "\n(source saved as %s)" % srcfile.name 406s 406s code = e.code 406s routine = e.routine 406s 406s err = RuntimeError( 406s _cl._ErrorRecord( 406s msg=msg, 406s code=code, 406s routine=routine)) 406s 406s # Python 3.2 outputs the whole list of currently active exceptions 406s # This serves to remove one (redundant) level from that nesting. 406s > raise err 406s E pyopencl._cl.RuntimeError: clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE 406s E 406s E Build on : 406s E 406s E error: /tmp/autopkgtest.SR9j29/autopkgtest_tmp/.cache/pocl/kcache/tempfile_mPnrVL.cl:75:33: use of undeclared identifier 'None' 406s E warning: /tmp/autopkgtest.SR9j29/autopkgtest_tmp/.cache/pocl/kcache/tempfile_mPnrVL.cl:62:9: 'max' macro redefined 406s E warning: /tmp/autopkgtest.SR9j29/autopkgtest_tmp/.cache/pocl/kcache/tempfile_mPnrVL.cl:62:9: 'max' macro redefined 406s E Device cpu-haswell-AMD EPYC-Rome Processor failed to build the program 406s E 406s E (options: -I /usr/lib/python3/dist-packages/pyopencl/cl) 406s 406s /usr/lib/python3/dist-packages/pyopencl/__init__.py:574: RuntimeError 406s ----------------------------- Captured stderr call ----------------------------- 406s 1 warning generated. 406s 1 warning generated. 406s 1 warning generated. 406s 1 warning generated. 406s 1 warning generated. 406s 2 warnings and 1 error generated. 406s ------------------------------ Captured log call ------------------------------- 406s DEBUG pyopencl.scan:scan.py:1198 cache miss for generated scan kernel 'scan' 406s ________________________ test_take_bool[opencl-float32] ________________________ 406s 406s dtype = , backend = 'opencl' 406s 406s @check_all_dtypes 406s @check_all_backends 406s def test_take_bool(dtype, backend): 406s check_import(backend) 406s if dtype == np.float64: 406s get_config().use_double = True 406s 406s # Given 406s x = array.arange(0, 10, 1, backend=backend, dtype=dtype) 406s cond = x > 5 406s 406s # When 406s > out = array.take_bool(x, cond) 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_array.py:569: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/array.py:771: in take_bool 406s e(condition, ary, cumsum_ar, out_ar) 406s ../../build.few/src/compyle/parallel.py:573: in __call__ 406s self.elementwise(*args, **kwargs) 406s ../../build.few/src/compyle/profile.py:72: in wrapper 406s return method(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:359: in __call__ 406s c_func = self._generate_kernel(*args) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:31: in wrapper 406s f.cached_kernel[key_val] = method(*args) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:347: in _generate_kernel 406s return self._generate(declarations=declarations) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/parallel.py:474: in _generate 406s all_source = knl.get_kernel(False)[0].program.source 406s ^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pytools/__init__.py:758: in wrapper 406s result = function(obj, *args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:244: in get_kernel 406s knl, arg_descrs = get_elwise_kernel_and_types( 406s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:169: in get_elwise_kernel_and_types 406s prg = get_elwise_program( 406s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:116: in get_elwise_program 406s return cl.Program(context, source).build(options) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pyopencl/__init__.py:518: in build 406s self._build_and_catch_errors( 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s build_func = . at 0x7e618f61a090> 406s options_bytes = b'-I /usr/lib/python3/dist-packages/pyopencl/cl', source = None 406s 406s def _build_and_catch_errors(self, build_func, options_bytes, source=None): 406s try: 406s return build_func() 406s except RuntimeError as e: 406s msg = str(e) 406s if options_bytes: 406s msg = msg + "\n(options: %s)" % options_bytes.decode("utf-8") 406s 406s if source is not None: 406s from tempfile import NamedTemporaryFile 406s srcfile = NamedTemporaryFile(mode="wt", delete=False, suffix=".cl") 406s try: 406s srcfile.write(source) 406s finally: 406s srcfile.close() 406s 406s msg = msg + "\n(source saved as %s)" % srcfile.name 406s 406s code = e.code 406s routine = e.routine 406s 406s err = RuntimeError( 406s _cl._ErrorRecord( 406s msg=msg, 406s code=code, 406s routine=routine)) 406s 406s # Python 3.2 outputs the whole list of currently active exceptions 406s # This serves to remove one (redundant) level from that nesting. 406s > raise err 406s E pyopencl._cl.RuntimeError: clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE 406s E 406s E Build on : 406s E 406s E error: /tmp/autopkgtest.SR9j29/autopkgtest_tmp/.cache/pocl/kcache/tempfile_3F9pIb.cl:76:33: use of undeclared identifier 'None' 406s E warning: /tmp/autopkgtest.SR9j29/autopkgtest_tmp/.cache/pocl/kcache/tempfile_3F9pIb.cl:62:9: 'max' macro redefined 406s E warning: /tmp/autopkgtest.SR9j29/autopkgtest_tmp/.cache/pocl/kcache/tempfile_3F9pIb.cl:62:9: 'max' macro redefined 406s E Device cpu-haswell-AMD EPYC-Rome Processor failed to build the program 406s E 406s E (options: -I /usr/lib/python3/dist-packages/pyopencl/cl) 406s 406s /usr/lib/python3/dist-packages/pyopencl/__init__.py:574: RuntimeError 406s ----------------------------- Captured stderr call ----------------------------- 406s 1 warning generated. 406s 2 warnings and 1 error generated. 406s ________________________ test_take_bool[opencl-float64] ________________________ 406s 406s dtype = , backend = 'opencl' 406s 406s @check_all_dtypes 406s @check_all_backends 406s def test_take_bool(dtype, backend): 406s check_import(backend) 406s if dtype == np.float64: 406s get_config().use_double = True 406s 406s # Given 406s x = array.arange(0, 10, 1, backend=backend, dtype=dtype) 406s cond = x > 5 406s 406s # When 406s > out = array.take_bool(x, cond) 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_array.py:569: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/array.py:771: in take_bool 406s e(condition, ary, cumsum_ar, out_ar) 406s ../../build.few/src/compyle/parallel.py:573: in __call__ 406s self.elementwise(*args, **kwargs) 406s ../../build.few/src/compyle/profile.py:72: in wrapper 406s return method(*args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:359: in __call__ 406s c_func = self._generate_kernel(*args) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:31: in wrapper 406s f.cached_kernel[key_val] = method(*args) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:347: in _generate_kernel 406s return self._generate(declarations=declarations) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/parallel.py:474: in _generate 406s all_source = knl.get_kernel(False)[0].program.source 406s ^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pytools/__init__.py:758: in wrapper 406s result = function(obj, *args, **kwargs) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:244: in get_kernel 406s knl, arg_descrs = get_elwise_kernel_and_types( 406s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:169: in get_elwise_kernel_and_types 406s prg = get_elwise_program( 406s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:116: in get_elwise_program 406s return cl.Program(context, source).build(options) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3/dist-packages/pyopencl/__init__.py:518: in build 406s self._build_and_catch_errors( 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s build_func = . at 0x7e618e529640> 406s options_bytes = b'-I /usr/lib/python3/dist-packages/pyopencl/cl', source = None 406s 406s def _build_and_catch_errors(self, build_func, options_bytes, source=None): 406s try: 406s return build_func() 406s except RuntimeError as e: 406s msg = str(e) 406s if options_bytes: 406s msg = msg + "\n(options: %s)" % options_bytes.decode("utf-8") 406s 406s if source is not None: 406s from tempfile import NamedTemporaryFile 406s srcfile = NamedTemporaryFile(mode="wt", delete=False, suffix=".cl") 406s try: 406s srcfile.write(source) 406s finally: 406s srcfile.close() 406s 406s msg = msg + "\n(source saved as %s)" % srcfile.name 406s 406s code = e.code 406s routine = e.routine 406s 406s err = RuntimeError( 406s _cl._ErrorRecord( 406s msg=msg, 406s code=code, 406s routine=routine)) 406s 406s # Python 3.2 outputs the whole list of currently active exceptions 406s # This serves to remove one (redundant) level from that nesting. 406s > raise err 406s E pyopencl._cl.RuntimeError: clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE 406s E 406s E Build on : 406s E 406s E error: /tmp/autopkgtest.SR9j29/autopkgtest_tmp/.cache/pocl/kcache/tempfile_DxFb5O.cl:82:33: use of undeclared identifier 'None' 406s E warning: /tmp/autopkgtest.SR9j29/autopkgtest_tmp/.cache/pocl/kcache/tempfile_DxFb5O.cl:68:9: 'max' macro redefined 406s E warning: /tmp/autopkgtest.SR9j29/autopkgtest_tmp/.cache/pocl/kcache/tempfile_DxFb5O.cl:68:9: 'max' macro redefined 406s E Device cpu-haswell-AMD EPYC-Rome Processor failed to build the program 406s E 406s E (options: -I /usr/lib/python3/dist-packages/pyopencl/cl) 406s 406s /usr/lib/python3/dist-packages/pyopencl/__init__.py:574: RuntimeError 406s ----------------------------- Captured stderr call ----------------------------- 406s 1 warning generated. 406s 2 warnings and 1 error generated. 406s ____________ TestCythonCodeGenerator.test_function_with_annotation _____________ 406s 406s self = 406s 406s def test_function_with_annotation(self): 406s # Given 406s cg = CythonGenerator() 406s # When 406s > cg.parse(annotated_f) 406s 406s ../../build.few/src/compyle/tests/test_cython_generator.py:242: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/cython_generator.py:208: in parse 406s self._parse_function(obj, declarations=declarations, 406s ../../build.few/src/compyle/cython_generator.py:505: in _parse_function 406s c_code, py_code = self._get_method_wrapper(obj, indent=' ' * 4, 406s ../../build.few/src/compyle/cython_generator.py:398: in _get_method_wrapper 406s c_body = self._get_method_body(meth, lines, indent=indent, 406s ../../build.few/src/compyle/cython_generator.py:368: in _get_method_body 406s src = [self._process_body_line(line, is_serial=is_serial) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:535: in _process_body_line 406s defn = self._handle_declare_statement(name, declare) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:462: in _handle_declare_statement 406s kind, _address_space, ctype, shape = parse_declare(declare) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s code = 'declare(\'LOCAL_MEM matrix(64, "unsigned int")\')' 406s 406s def parse_declare(code): 406s """Given a string with the source for the declare method, 406s return the type information. 406s """ 406s m = ast.parse(code) 406s call = m.body[0].value 406s if call.func.id != 'declare': 406s raise CodeGenerationError('Unknown declare statement: %s' % code) 406s arg0 = call.args[0] 406s > if not isinstance(arg0, ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/cython_generator.py:129: AttributeError 406s _______________ TestCythonCodeGenerator.test_method_with_declare _______________ 406s 406s self = 406s 406s def test_method_with_declare(self): 406s cg = CythonGenerator() 406s > cg.parse(EqWithDeclare()) 406s 406s ../../build.few/src/compyle/tests/test_cython_generator.py:396: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/cython_generator.py:211: in parse 406s self._parse_instance(obj) 406s ../../build.few/src/compyle/cython_generator.py:518: in _parse_instance 406s methods = self._get_methods(cls) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:352: in _get_methods 406s c_code, py_code = self._get_method_wrapper( 406s ../../build.few/src/compyle/cython_generator.py:398: in _get_method_wrapper 406s c_body = self._get_method_body(meth, lines, indent=indent, 406s ../../build.few/src/compyle/cython_generator.py:368: in _get_method_body 406s src = [self._process_body_line(line, is_serial=is_serial) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:535: in _process_body_line 406s defn = self._handle_declare_statement(name, declare) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:462: in _handle_declare_statement 406s kind, _address_space, ctype, shape = parse_declare(declare) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s code = "declare('float', 2)" 406s 406s def parse_declare(code): 406s """Given a string with the source for the declare method, 406s return the type information. 406s """ 406s m = ast.parse(code) 406s call = m.body[0].value 406s if call.func.id != 'declare': 406s raise CodeGenerationError('Unknown declare statement: %s' % code) 406s arg0 = call.args[0] 406s > if not isinstance(arg0, ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/cython_generator.py:129: AttributeError 406s _______________ TestCythonCodeGenerator.test_method_with_matrix ________________ 406s 406s self = 406s 406s def test_method_with_matrix(self): 406s cg = CythonGenerator() 406s > cg.parse(EqWithMatrix()) 406s 406s ../../build.few/src/compyle/tests/test_cython_generator.py:379: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/cython_generator.py:211: in parse 406s self._parse_instance(obj) 406s ../../build.few/src/compyle/cython_generator.py:518: in _parse_instance 406s methods = self._get_methods(cls) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:352: in _get_methods 406s c_code, py_code = self._get_method_wrapper( 406s ../../build.few/src/compyle/cython_generator.py:398: in _get_method_wrapper 406s c_body = self._get_method_body(meth, lines, indent=indent, 406s ../../build.few/src/compyle/cython_generator.py:368: in _get_method_body 406s src = [self._process_body_line(line, is_serial=is_serial) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:535: in _process_body_line 406s defn = self._handle_declare_statement(name, declare) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:462: in _handle_declare_statement 406s kind, _address_space, ctype, shape = parse_declare(declare) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s code = "declare('matrix((2,2))')" 406s 406s def parse_declare(code): 406s """Given a string with the source for the declare method, 406s return the type information. 406s """ 406s m = ast.parse(code) 406s call = m.body[0].value 406s if call.func.id != 'declare': 406s raise CodeGenerationError('Unknown declare statement: %s' % code) 406s arg0 = call.args[0] 406s > if not isinstance(arg0, ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/cython_generator.py:129: AttributeError 406s _______________ TestCythonCodeGenerator.test_python3_annotation ________________ 406s 406s self = 406s 406s @unittest.skipIf(sys.version_info < (3, 4), reason='Requires Python3.') 406s def test_python3_annotation(self): 406s # Given 406s from .py3_code import py3_f 406s cg = CythonGenerator() 406s 406s # When 406s > cg.parse(py3_f) 406s 406s ../../build.few/src/compyle/tests/test_cython_generator.py:259: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/cython_generator.py:208: in parse 406s self._parse_function(obj, declarations=declarations, 406s ../../build.few/src/compyle/cython_generator.py:505: in _parse_function 406s c_code, py_code = self._get_method_wrapper(obj, indent=' ' * 4, 406s ../../build.few/src/compyle/cython_generator.py:398: in _get_method_wrapper 406s c_body = self._get_method_body(meth, lines, indent=indent, 406s ../../build.few/src/compyle/cython_generator.py:368: in _get_method_body 406s src = [self._process_body_line(line, is_serial=is_serial) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:535: in _process_body_line 406s defn = self._handle_declare_statement(name, declare) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:462: in _handle_declare_statement 406s kind, _address_space, ctype, shape = parse_declare(declare) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s code = "declare('int')" 406s 406s def parse_declare(code): 406s """Given a string with the source for the declare method, 406s return the type information. 406s """ 406s m = ast.parse(code) 406s call = m.body[0].value 406s if call.func.id != 'declare': 406s raise CodeGenerationError('Unknown declare statement: %s' % code) 406s arg0 = call.args[0] 406s > if not isinstance(arg0, ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/cython_generator.py:129: AttributeError 406s __________________ TestAnnotationHelper.test_cast_return_type __________________ 406s 406s self = 406s 406s def test_cast_return_type(self): 406s # Given 406s @annotate 406s def f(a): 406s return cast(a, "int") 406s 406s # When 406s types = {'a': 'double'} 406s helper = AnnotationHelper(f, types) 406s > helper.annotate() 406s 406s ../../build.few/src/compyle/tests/test_jit.py:469: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/jit.py:167: in annotate 406s self.visit(code) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:306: in visit_Return 406s result_type = self.visit(node.value) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:244: in visit_Call 406s return self.visit_cast(node) 406s ^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Call(func=Name(id='cast', ctx=Load()), args=[Name(id='a', ctx=Load()), Constant(value='int', kind=None)], keywords=[]) 406s 406s def visit_cast(self, node): 406s > if not isinstance(node.args[1], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/jit.py:211: AttributeError 406s _____________ TestAnnotationHelper.test_declare_multiple_variables _____________ 406s 406s self = 406s 406s def test_declare_multiple_variables(self): 406s # Given 406s @annotate 406s def f(x): 406s a, b = declare('int', 2) 406s a = 0 406s b = 1 406s return x + a + b 406s 406s # When 406s types = {'x': 'int'} 406s helper = AnnotationHelper(f, types) 406s > helper.annotate() 406s 406s ../../build.few/src/compyle/tests/test_jit.py:88: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/jit.py:167: in annotate 406s self.visit(code) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:277: in visit_Assign 406s right_type = self.visit(right) 406s ^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:242: in visit_Call 406s return self.visit_declare(node) 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None), Constant(value=2, kind=None)], keywords=[]) 406s 406s def visit_declare(self, node): 406s > if not isinstance(node.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/jit.py:205: AttributeError 406s ________________ TestAnnotationHelper.test_variable_as_call_arg ________________ 406s 406s self = 406s 406s def test_variable_as_call_arg(self): 406s # Given 406s @annotate 406s def f(a, b): 406s x = declare('int') 406s x = a + b 406s return g(x) 406s 406s # When 406s types = {'a': 'int', 'b': 'int'} 406s helper = AnnotationHelper(f, types) 406s > helper.annotate() 406s 406s ../../build.few/src/compyle/tests/test_jit.py:105: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/jit.py:167: in annotate 406s self.visit(code) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:277: in visit_Assign 406s right_type = self.visit(right) 406s ^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:242: in visit_Call 406s return self.visit_declare(node) 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None)], keywords=[]) 406s 406s def visit_declare(self, node): 406s > if not isinstance(node.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/jit.py:205: AttributeError 406s ____________ TestAnnotationHelper.test_variable_as_call_arg_nonjit _____________ 406s 406s self = 406s 406s def test_variable_as_call_arg_nonjit(self): 406s # Given 406s @annotate 406s def f(a, b): 406s x = declare('int') 406s x = a + b 406s return g_nonjit(x) 406s 406s # When 406s types = {'a': 'int', 'b': 'int'} 406s helper = AnnotationHelper(f, types) 406s > helper.annotate() 406s 406s ../../build.few/src/compyle/tests/test_jit.py:121: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/jit.py:167: in annotate 406s self.visit(code) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:514: in generic_visit 406s self.visit(item) 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:277: in visit_Assign 406s right_type = self.visit(right) 406s ^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/jit.py:242: in visit_Call 406s return self.visit_declare(node) 406s ^^^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None)], keywords=[]) 406s 406s def visit_declare(self, node): 406s > if not isinstance(node.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/jit.py:205: AttributeError 406s _______________ TestKernel.test_kernel_with_local_memory_opencl ________________ 406s 406s self = 406s 406s def test_kernel_with_local_memory_opencl(self): 406s importorskip('pyopencl') 406s 406s # Given 406s @annotate(gdoublep='x, y', xc='ldoublep', a='float') 406s def knl(x, y, xc, a): 406s i, lid = declare('int', 2) 406s lid = LID_0 406s i = GID_0 * LDIM_0 + lid 406s 406s xc[lid] = x[i] 406s 406s local_barrier() 406s 406s y[i] = xc[lid] * a 406s 406s x = np.linspace(0, 1, 1024) 406s y = np.zeros_like(x) 406s xc = LocalMem(1, backend='opencl') 406s 406s x, y = wrap(x, y, backend='opencl') 406s 406s # When 406s > k = Kernel(knl, backend='opencl') 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_low_level.py:87: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/low_level.py:150: in __init__ 406s self._generate() 406s ../../build.few/src/compyle/low_level.py:195: in _generate 406s self.tp.add(self.func) 406s ../../build.few/src/compyle/transpiler.py:278: in add 406s code = self._cgen.parse( 406s ../../build.few/src/compyle/translator.py:281: in parse 406s code = self.parse_function(obj, declarations=declarations) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:307: in parse_function 406s code = self.convert(src) 406s ^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:252: in convert 406s result = self.visit(code) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:652: in visit_Module 406s return '\n'.join( 406s ../../build.few/src/compyle/translator.py:653: in 406s self.visit(item) for item in node.body 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:584: in visit_FunctionDef 406s body = '\n'.join(self._indent_block(self.visit(item)) 406s ../../build.few/src/compyle/translator.py:584: in 406s body = '\n'.join(self._indent_block(self.visit(item)) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Assign(targets=[Tuple(elts=[Name(id='i', ctx=Store(...)), Name(id='lid', ctx=Store(...))], ctx=Store())], value=Call(f...ctx=Load(...)), args=[Constant(value='int', kind=None), Constant(value=2, kind=None)], keywords=[]), type_comment=None) 406s 406s def visit_Assign(self, node): 406s if len(node.targets) != 1: 406s self.error("Assignments can have only one target.", node) 406s left, right = node.targets[0], node.value 406s if isinstance(right, ast.Call) and \ 406s isinstance(right.func, ast.Name) and right.func.id == 'declare': 406s > if not isinstance(right.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/translator.py:344: AttributeError 406s _____________________ TestKernel.test_simple_kernel_opencl _____________________ 406s 406s self = 406s 406s def test_simple_kernel_opencl(self): 406s importorskip('pyopencl') 406s 406s # Given 406s @annotate(gdoublep='x, y', a='float', size='int') 406s def knl(x, y, a, size): 406s i = declare('int') 406s i = GID_0*LDIM_0 + LID_0 406s if i < size: 406s y[i] = x[i]*a 406s 406s x = np.linspace(0, 1, 1000) 406s y = np.zeros_like(x) 406s x, y = wrap(x, y, backend='opencl') 406s 406s # When 406s > k = Kernel(knl, backend='opencl') 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_low_level.py:32: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/low_level.py:150: in __init__ 406s self._generate() 406s ../../build.few/src/compyle/low_level.py:195: in _generate 406s self.tp.add(self.func) 406s ../../build.few/src/compyle/transpiler.py:278: in add 406s code = self._cgen.parse( 406s ../../build.few/src/compyle/translator.py:281: in parse 406s code = self.parse_function(obj, declarations=declarations) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:307: in parse_function 406s code = self.convert(src) 406s ^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:252: in convert 406s result = self.visit(code) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:652: in visit_Module 406s return '\n'.join( 406s ../../build.few/src/compyle/translator.py:653: in 406s self.visit(item) for item in node.body 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:584: in visit_FunctionDef 406s body = '\n'.join(self._indent_block(self.visit(item)) 406s ../../build.few/src/compyle/translator.py:584: in 406s body = '\n'.join(self._indent_block(self.visit(item)) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Assign(targets=[Name(id='i', ctx=Store())], value=Call(func=Name(id='declare', ctx=Load(...)), args=[Constant(value='int', kind=None)], keywords=[]), type_comment=None) 406s 406s def visit_Assign(self, node): 406s if len(node.targets) != 1: 406s self.error("Assignments can have only one target.", node) 406s left, right = node.targets[0], node.value 406s if isinstance(right, ast.Call) and \ 406s isinstance(right.func, ast.Name) and right.func.id == 'declare': 406s > if not isinstance(right.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/translator.py:344: AttributeError 406s ___________ TestCython.test_cython_code_with_return_and_nested_call ____________ 406s 406s self = 406s 406s def test_cython_code_with_return_and_nested_call(self): 406s # Given 406s n = 1000 406s x = np.linspace(0, 1, n) 406s y = x.copy() 406s a = 2.0 406s 406s # When 406s > cy = Cython(knl) 406s ^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_low_level.py:167: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/low_level.py:360: in __init__ 406s self._generate() 406s ../../build.few/src/compyle/low_level.py:363: in _generate 406s self.tp.add(self.func) 406s ../../build.few/src/compyle/transpiler.py:273: in add 406s self._cgen.parse( 406s ../../build.few/src/compyle/cython_generator.py:208: in parse 406s self._parse_function(obj, declarations=declarations, 406s ../../build.few/src/compyle/cython_generator.py:505: in _parse_function 406s c_code, py_code = self._get_method_wrapper(obj, indent=' ' * 4, 406s ../../build.few/src/compyle/cython_generator.py:398: in _get_method_wrapper 406s c_body = self._get_method_body(meth, lines, indent=indent, 406s ../../build.few/src/compyle/cython_generator.py:368: in _get_method_body 406s src = [self._process_body_line(line, is_serial=is_serial) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:535: in _process_body_line 406s defn = self._handle_declare_statement(name, declare) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:462: in _handle_declare_statement 406s kind, _address_space, ctype, shape = parse_declare(declare) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s code = "declare('int')" 406s 406s def parse_declare(code): 406s """Given a string with the source for the declare method, 406s return the type information. 406s """ 406s m = ast.parse(code) 406s call = m.body[0].value 406s if call.func.id != 'declare': 406s raise CodeGenerationError('Unknown declare statement: %s' % code) 406s arg0 = call.args[0] 406s > if not isinstance(arg0, ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/cython_generator.py:129: AttributeError 406s _____________________ TestCython.test_cython_with_externs ______________________ 406s 406s self = 406s 406s def test_cython_with_externs(self): 406s # Given 406s n = 1000 406s x = np.linspace(0, 1, n) 406s y = np.zeros_like(x) 406s a = 2.0 406s 406s # When 406s with use_config(use_openmp=True): 406s > cy = Cython(cy_extern) 406s ^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_low_level.py:182: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/low_level.py:360: in __init__ 406s self._generate() 406s ../../build.few/src/compyle/low_level.py:363: in _generate 406s self.tp.add(self.func) 406s ../../build.few/src/compyle/transpiler.py:273: in add 406s self._cgen.parse( 406s ../../build.few/src/compyle/cython_generator.py:208: in parse 406s self._parse_function(obj, declarations=declarations, 406s ../../build.few/src/compyle/cython_generator.py:505: in _parse_function 406s c_code, py_code = self._get_method_wrapper(obj, indent=' ' * 4, 406s ../../build.few/src/compyle/cython_generator.py:398: in _get_method_wrapper 406s c_body = self._get_method_body(meth, lines, indent=indent, 406s ../../build.few/src/compyle/cython_generator.py:368: in _get_method_body 406s src = [self._process_body_line(line, is_serial=is_serial) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:535: in _process_body_line 406s defn = self._handle_declare_statement(name, declare) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/cython_generator.py:462: in _handle_declare_statement 406s kind, _address_space, ctype, shape = parse_declare(declare) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s code = "declare('int')" 406s 406s def parse_declare(code): 406s """Given a string with the source for the declare method, 406s return the type information. 406s """ 406s m = ast.parse(code) 406s call = m.body[0].value 406s if call.func.id != 'declare': 406s raise CodeGenerationError('Unknown declare statement: %s' % code) 406s arg0 = call.args[0] 406s > if not isinstance(arg0, ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/cython_generator.py:129: AttributeError 406s _____________________________ test_simple_template _____________________________ 406s 406s def test_simple_template(): 406s # Given 406s t = SimpleTemplate(name='simple') 406s 406s # When 406s > simple = t.function 406s ^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_template.py:61: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/template.py:24: in function 406s self._function = self._make_function() 406s ^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:28: in _make_function 406s src, annotations = self._get_code() 406s ^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s 406s def _get_code(self): 406s m = ast.parse(dedent(inspect.getsource(self.template))) 406s argspec = getfullargspec(self.template) 406s args = argspec.args 406s if args[0] == 'self': 406s args = args[1:] 406s extra_args, extra_annotations = self.extra_args() 406s args += extra_args 406s arg_string = ', '.join(args) 406s body = m.body[0].body 406s > template = body[-1].value.s 406s ^^^^^^^^^^^^^^^^ 406s E AttributeError: 'Constant' object has no attribute 's' 406s 406s ../../build.few/src/compyle/template.py:52: AttributeError 406s ______________________ test_that_source_code_is_available ______________________ 406s 406s def test_that_source_code_is_available(): 406s # Given/When 406s > dummy = Dummy('dummy').function 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_template.py:80: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/template.py:24: in function 406s self._function = self._make_function() 406s ^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:28: in _make_function 406s src, annotations = self._get_code() 406s ^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s 406s def _get_code(self): 406s m = ast.parse(dedent(inspect.getsource(self.template))) 406s argspec = getfullargspec(self.template) 406s args = argspec.args 406s if args[0] == 'self': 406s args = args[1:] 406s extra_args, extra_annotations = self.extra_args() 406s args += extra_args 406s arg_string = ', '.join(args) 406s body = m.body[0].body 406s > template = body[-1].value.s 406s ^^^^^^^^^^^^^^^^ 406s E AttributeError: 'Constant' object has no attribute 's' 406s 406s ../../build.few/src/compyle/template.py:52: AttributeError 406s ___________________ test_template_usable_in_code_generation ____________________ 406s 406s def test_template_usable_in_code_generation(): 406s # Given 406s > twice = ParallelExample('twice').function 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_template.py:95: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/template.py:24: in function 406s self._function = self._make_function() 406s ^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:28: in _make_function 406s src, annotations = self._get_code() 406s ^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s 406s def _get_code(self): 406s m = ast.parse(dedent(inspect.getsource(self.template))) 406s argspec = getfullargspec(self.template) 406s args = argspec.args 406s if args[0] == 'self': 406s args = args[1:] 406s extra_args, extra_annotations = self.extra_args() 406s args += extra_args 406s arg_string = ', '.join(args) 406s body = m.body[0].body 406s > template = body[-1].value.s 406s ^^^^^^^^^^^^^^^^ 406s E AttributeError: 'Constant' object has no attribute 's' 406s 406s ../../build.few/src/compyle/template.py:52: AttributeError 406s ________________________ test_template_with_extra_args _________________________ 406s 406s def test_template_with_extra_args(): 406s # Given 406s > extra = ExtraArgs('extra').function 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_template.py:113: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/template.py:24: in function 406s self._function = self._make_function() 406s ^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/template.py:28: in _make_function 406s src, annotations = self._get_code() 406s ^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s 406s def _get_code(self): 406s m = ast.parse(dedent(inspect.getsource(self.template))) 406s argspec = getfullargspec(self.template) 406s args = argspec.args 406s if args[0] == 'self': 406s args = args[1:] 406s extra_args, extra_annotations = self.extra_args() 406s args += extra_args 406s arg_string = ', '.join(args) 406s body = m.body[0].body 406s > template = body[-1].value.s 406s ^^^^^^^^^^^^^^^^ 406s E AttributeError: 'Constant' object has no attribute 's' 406s 406s ../../build.few/src/compyle/template.py:52: AttributeError 406s ______________________ test_simple_assignment_expression _______________________ 406s 406s def test_simple_assignment_expression(): 406s # Given 406s src = dedent(''' 406s b = (2*a + 1)*(-a/1.5)%2 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s double a; 406s double b; 406s b = ((((2 * a) + 1) * (-a / 1.5)) % 2); 406s ''') 406s > assert code == expect.strip() 406s E AssertionError: assert 'double a;\nd...ne)) % None);' == 'double a;\nd.../ 1.5)) % 2);' 406s E 406s E double a; 406s E double b; 406s E - b = ((((2 * a) + 1) * (-a / 1.5)) % 2); 406s E ? ^ ^ ^^^ ^ 406s E + b = ((((None * a) + None) * (-a / None)) % None); 406s E ? ^^^^ ^^^^ ^^^^ ^^^^ 406s 406s ../../build.few/src/compyle/tests/test_translator.py:35: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s double a; 406s double b; 406s b = ((((None * a) + None) * (-a / None)) % None); 406s _____________________ test_multiple_assignment_expressions _____________________ 406s 406s def test_multiple_assignment_expressions(): 406s # Given 406s src = dedent(''' 406s a = 21.5 406s b = (2*a + 1)*(a/1.5)%2 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s double a; 406s double b; 406s a = 21.5; 406s b = ((((2 * a) + 1) * (a / 1.5)) % 2); 406s ''') 406s > assert code == expect.strip() 406s E AssertionError: assert 'double a;\nd...ne)) % None);' == 'double a;\nd.../ 1.5)) % 2);' 406s E 406s E double a; 406s E double b; 406s E - a = 21.5; 406s E - b = ((((2 * a) + 1) * (a / 1.5)) % 2); 406s E + a = None; 406s E + b = ((((None * a) + None) * (a / None)) % None); 406s 406s ../../build.few/src/compyle/tests/test_translator.py:55: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s double a; 406s double b; 406s a = None; 406s b = ((((None * a) + None) * (a / None)) % None); 406s ________________________________ test_if_block _________________________________ 406s 406s def test_if_block(): 406s # Given 406s src = dedent(''' 406s a = 21.5 406s if a > 20: 406s b = a - 1 406s elif a < 20: 406s b = a + 1 406s else: 406s b = a 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s double a; 406s double b; 406s a = 21.5; 406s if ((a > 20)) { 406s b = (a - 1); 406s } 406s else { 406s if ((a < 20)) { 406s b = (a + 1); 406s } 406s else { 406s b = a; 406s } 406s } 406s ''') 406s > assert code.strip() == expect.strip() 406s E AssertionError: assert 'double a;\nd... a;\n }\n}' == 'double a;\nd... a;\n }\n}' 406s E 406s E double a; 406s E double b; 406s E - a = 21.5; 406s E + a = None; 406s E - if ((a > 20)) { 406s E ? ^^... 406s E 406s E ...Full output truncated (21 lines hidden), use '-vv' to show 406s 406s ../../build.few/src/compyle/tests/test_translator.py:90: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s double a; 406s double b; 406s a = None; 406s if ((a > None)) { 406s b = (a - None); 406s } 406s else { 406s if ((a < None)) { 406s b = (a + None); 406s } 406s else { 406s b = a; 406s } 406s } 406s 406s ______________________________ test_conditionals _______________________________ 406s 406s def test_conditionals(): 406s # Given 406s src = dedent(''' 406s if (x > 10 and x < 20) or not (x >= 10 and x <= 20): 406s y 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s double x; 406s double y; 406s if ((((x > 10) && (x < 20)) || !((x >= 10) && (x <= 20)))) { 406s y; 406s } 406s ''') 406s > assert code.strip() == expect.strip() 406s E AssertionError: assert 'double x;\nd... {\n y;\n}' == 'double x;\nd... {\n y;\n}' 406s E 406s E double x; 406s E double y; 406s E - if ((((x > 10) && (x < 20)) || !((x >= 10) && (x <= 20)))) { 406s E ? ^^ ^^ ^^ ^^ 406s E + if ((((x > None) && (x < None)) || !((x >= None) && (x <= None)))) { 406s E ? ^^^^ ^^^^ ^^^^ ^^^^ 406s E y; 406s E } 406s 406s ../../build.few/src/compyle/tests/test_translator.py:111: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s double x; 406s double y; 406s if ((((x > None) && (x < None)) || !((x >= None) && (x <= None)))) { 406s y; 406s } 406s 406s ____________________________ test_ternary_operator _____________________________ 406s 406s def test_ternary_operator(): 406s # Given 406s src = dedent(''' 406s y = 2.0 406s x = 1.0 if y >= 2.0 else 0.0 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s double x; 406s double y; 406s y = 2.0; 406s x = (y >= 2.0) ? 1.0 : 0.0; 406s ''') 406s > assert code.strip() == expect.strip() 406s E AssertionError: assert 'double x;\nd... None : None;' == 'double x;\nd... ? 1.0 : 0.0;' 406s E 406s E double x; 406s E double y; 406s E - y = 2.0; 406s E - x = (y >= 2.0) ? 1.0 : 0.0; 406s E + y = None; 406s E + x = (y >= None) ? None : None; 406s 406s ../../build.few/src/compyle/tests/test_translator.py:167: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s double x; 406s double y; 406s y = None; 406s x = (y >= None) ? None : None; 406s ____________________________ test_multiple_boolops _____________________________ 406s 406s def test_multiple_boolops(): 406s # Given 406s src = dedent(''' 406s if x % 2 == 0 or x % 2 == 1 or x > 0: 406s pass 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s double x; 406s if ((((x % 2) == 0) || ((x % 2) == 1) || (x > 0))) { 406s ; 406s } 406s ''') 406s > assert code.strip() == expect.strip() 406s E AssertionError: assert 'double x;\ni...) {\n ;\n}' == 'double x;\ni...) {\n ;\n}' 406s E 406s E double x; 406s E - if ((((x % 2) == 0) || ((x % 2) == 1) || (x > 0))) { 406s E ? ^ ^ ^ ^ ^ 406s E + if ((((x % None) == None) || ((x % None) == None) || (x > None))) { 406s E ? ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ 406s E ; 406s E } 406s 406s ../../build.few/src/compyle/tests/test_translator.py:187: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s double x; 406s if ((((x % None) == None) || ((x % None) == None) || (x > None))) { 406s ; 406s } 406s 406s __________________________ test_multiple_bitwise_ops ___________________________ 406s 406s def test_multiple_bitwise_ops(): 406s # Given 406s src = dedent(''' 406s x = 1 << 5 406s y = x >> 2 406s z = (x | y) ^ (x & y) 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s double x; 406s double y; 406s double z; 406s x = (1 << 5); 406s y = (x >> 2); 406s z = ((x | y) ^ (x & y)); 406s ''') 406s 406s > assert code.strip() == expect.strip() 406s E AssertionError: assert 'double x;\nd...) ^ (x & y));' == 'double x;\nd...) ^ (x & y));' 406s E 406s E double x; 406s E double y; 406s E double z; 406s E - x = (1 << 5); 406s E + x = (None << None); 406s E - y = (x >> 2);... 406s E 406s E ...Full output truncated (4 lines hidden), use '-vv' to show 406s 406s ../../build.few/src/compyle/tests/test_translator.py:211: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s double x; 406s double y; 406s double z; 406s x = (None << None); 406s y = (x >> None); 406s z = ((x | y) ^ (x & y)); 406s __________________________________ test_power __________________________________ 406s 406s def test_power(): 406s # Given 406s src = dedent(''' 406s 1.5*x**2 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s double x; 406s (1.5 * pow(x, 2)); 406s ''') 406s > assert code.strip() == expect.strip() 406s E AssertionError: assert 'double x;\n(...ow(x, None));' == 'double x;\n(...* pow(x, 2));' 406s E 406s E double x; 406s E - (1.5 * pow(x, 2)); 406s E + (None * pow(x, None)); 406s 406s ../../build.few/src/compyle/tests/test_translator.py:228: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s double x; 406s (None * pow(x, None)); 406s ____________________________ test_calling_function _____________________________ 406s 406s def test_calling_function(): 406s # Given 406s src = dedent(''' 406s sin(23.2 + 1) 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s sin((23.2 + 1)); 406s ''') 406s > assert code == expect.strip() 406s E AssertionError: assert 'sin((None + None));' == 'sin((23.2 + 1));' 406s E 406s E - sin((23.2 + 1)); 406s E + sin((None + None)); 406s 406s ../../build.few/src/compyle/tests/test_translator.py:256: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s sin((None + None)); 406s _______________________ test_calling_printf_with_string ________________________ 406s 406s def test_calling_printf_with_string(): 406s # Given 406s src = dedent(r''' 406s printf('%s %d %f\n', 'hello', 1, 2.0) 406s ''') 406s 406s # When 406s > code = py2c(src) 406s ^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_translator.py:266: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/translator.py:65: in py2c 406s result = converter.convert(src) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:252: in convert 406s result = self.visit(code) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:652: in visit_Module 406s return '\n'.join( 406s ../../build.few/src/compyle/translator.py:653: in 406s self.visit(item) for item in node.body 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:438: in visit_Expr 406s return self.visit(node.value) + ';' 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Call(func=Name(id='printf', ctx=Load()), args=[Constant(value='%s %d %f\n', kind=None), ..., Constant(value=2.0, kind=None)], keywords=[]) 406s 406s def visit_Call(self, node): 406s if isinstance(node.func, ast.Name): 406s if node.func.id == 'address': 406s return '(&%s)' % self.visit(node.args[0]) 406s elif 'atomic' in node.func.id: 406s return self.render_atomic(node.func.id, node.args[0]) 406s elif node.func.id == 'cast': 406s return '(%s) (%s)' % (node.args[1].s, self.visit(node.args[0])) 406s else: 406s return '{func}({args})'.format( 406s func=node.func.id, 406s > args=', '.join(self.visit(x) for x in node.args) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s E TypeError: sequence item 0: expected str instance, NoneType found 406s 406s ../../build.few/src/compyle/translator.py:392: TypeError 406s ________________________________ test_subscript ________________________________ 406s 406s def test_subscript(): 406s # Given 406s src = dedent(''' 406s x[1] 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s double x; 406s x[1]; 406s ''') 406s > assert code == expect.strip() 406s E AssertionError: assert 'double x;\nx[None];' == 'double x;\nx[1];' 406s E 406s E double x; 406s E - x[1]; 406s E + x[None]; 406s 406s ../../build.few/src/compyle/tests/test_translator.py:289: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s double x; 406s x[None]; 406s _______________________ test_simple_function_with_return _______________________ 406s 406s def test_simple_function_with_return(): 406s # Given 406s src = dedent(''' 406s def f(x=0.0): 406s 'docstring' 406s y = x + 1 406s return y 406s ''') 406s 406s # When 406s > code = py2c(src) 406s ^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_translator.py:329: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/translator.py:65: in py2c 406s result = converter.convert(src) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:252: in convert 406s result = self.visit(code) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:652: in visit_Module 406s return '\n'.join( 406s ../../build.few/src/compyle/translator.py:653: in 406s self.visit(item) for item in node.body 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:585: in visit_FunctionDef 406s for item in self._remove_docstring(node.body)) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s body = [Expr(value=Constant(value='docstring', kind=None)), Assign(targets=[Name(id='y', ctx=Store())], value=BinOp(left=Name...=Load(...)), op=Add(), right=Constant(value=1, kind=None)), type_comment=None), Return(value=Name(id='y', ctx=Load()))] 406s 406s def _remove_docstring(self, body): 406s if body and isinstance(body[0], ast.Expr) and \ 406s > isinstance(body[0].value, ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/translator.py:228: AttributeError 406s ___________________________ test_annotated_function ____________________________ 406s 406s def test_annotated_function(): 406s # Given/When 406s t = CConverter() 406s > code = t.parse_function(annotated_f) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_translator.py:411: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/translator.py:307: in parse_function 406s code = self.convert(src) 406s ^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:252: in convert 406s result = self.visit(code) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:652: in visit_Module 406s return '\n'.join( 406s ../../build.few/src/compyle/translator.py:653: in 406s self.visit(item) for item in node.body 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:584: in visit_FunctionDef 406s body = '\n'.join(self._indent_block(self.visit(item)) 406s ../../build.few/src/compyle/translator.py:584: in 406s body = '\n'.join(self._indent_block(self.visit(item)) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Assign(targets=[Name(id='x', ctx=Store())], value=Call(func=Name(id='declare', ctx=Load(...)), args=[Constant(value='LOCAL_MEM matrix(64)', kind=None)], keywords=[]), type_comment=None) 406s 406s def visit_Assign(self, node): 406s if len(node.targets) != 1: 406s self.error("Assignments can have only one target.", node) 406s left, right = node.targets[0], node.value 406s if isinstance(right, ast.Call) and \ 406s isinstance(right.func, ast.Name) and right.func.id == 'declare': 406s > if not isinstance(right.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/translator.py:344: AttributeError 406s _____________________________ test_py3_annotations _____________________________ 406s 406s @pytest.mark.skipif(sys.version_info < (3, 4), reason='Requires Python3') 406s def test_py3_annotations(): 406s # Given/When 406s from .py3_code import py3_f 406s t = CConverter() 406s > code = t.parse_function(py3_f) 406s ^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_translator.py:429: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/translator.py:307: in parse_function 406s code = self.convert(src) 406s ^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:252: in convert 406s result = self.visit(code) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:652: in visit_Module 406s return '\n'.join( 406s ../../build.few/src/compyle/translator.py:653: in 406s self.visit(item) for item in node.body 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:584: in visit_FunctionDef 406s body = '\n'.join(self._indent_block(self.visit(item)) 406s ../../build.few/src/compyle/translator.py:584: in 406s body = '\n'.join(self._indent_block(self.visit(item)) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Assign(targets=[Name(id='y', ctx=Store())], value=Call(func=Name(id='declare', ctx=Load(...)), args=[Constant(value='int', kind=None)], keywords=[]), type_comment=None) 406s 406s def visit_Assign(self, node): 406s if len(node.targets) != 1: 406s self.error("Assignments can have only one target.", node) 406s left, right = node.targets[0], node.value 406s if isinstance(right, ast.Call) and \ 406s isinstance(right.func, ast.Name) and right.func.id == 'declare': 406s > if not isinstance(right.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/translator.py:344: AttributeError 406s ______________________ test_calling_method_of_known_type _______________________ 406s 406s def test_calling_method_of_known_type(): 406s # Given 406s src = dedent(''' 406s obj.method(1, 2) 406s obj.meth() 406s ''') 406s known = {'obj': KnownType('SomeClass*', base_type='SomeClass')} 406s 406s # When 406s > code = py2c(src, known_types=known) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_translator.py:452: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/translator.py:65: in py2c 406s result = converter.convert(src) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:252: in convert 406s result = self.visit(code) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:652: in visit_Module 406s return '\n'.join( 406s ../../build.few/src/compyle/translator.py:653: in 406s self.visit(item) for item in node.body 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:438: in visit_Expr 406s return self.visit(node.value) + ';' 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Call(func=Attribute(value=Name(id='obj', ctx=Load(...)), attr='method', ctx=Load()), args=[Constant(value=1, kind=None), Constant(value=2, kind=None)], keywords=[]) 406s 406s def visit_Call(self, node): 406s if isinstance(node.func, ast.Name): 406s if node.func.id == 'address': 406s return '(&%s)' % self.visit(node.args[0]) 406s elif 'atomic' in node.func.id: 406s return self.render_atomic(node.func.id, node.args[0]) 406s elif node.func.id == 'cast': 406s return '(%s) (%s)' % (node.args[1].s, self.visit(node.args[0])) 406s else: 406s return '{func}({args})'.format( 406s func=node.func.id, 406s args=', '.join(self.visit(x) for x in node.args) 406s ) 406s elif isinstance(node.func, ast.Attribute): 406s if node.func.value.id in self._known_types: 406s name = node.func.value.id 406s cls = self._known_types[name].base_type 406s args = [name] + [self.visit(x) for x in node.args] 406s return '{func}({args})'.format( 406s func='%s_%s' % (cls, node.func.attr), 406s > args=', '.join(args) 406s ^^^^^^^^^^^^^^^ 406s E TypeError: sequence item 1: expected str instance, NoneType found 406s 406s ../../build.few/src/compyle/translator.py:401: TypeError 406s _________________ test_calling_method_of_known_type_in_method __________________ 406s 406s def test_calling_method_of_known_type_in_method(): 406s # Given 406s src = dedent(''' 406s class Foo(object): 406s def g(self): 406s pass 406s def f(self, obj): 406s obj.method(1, 2) 406s self.g() 406s ''') 406s 406s # When 406s known = {'obj': KnownType('SomeClass*', base_type='SomeClass')} 406s > code = py2c(src, known_types=known) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_translator.py:475: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/translator.py:65: in py2c 406s result = converter.convert(src) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:252: in convert 406s result = self.visit(code) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:652: in visit_Module 406s return '\n'.join( 406s ../../build.few/src/compyle/translator.py:653: in 406s self.visit(item) for item in node.body 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:417: in visit_ClassDef 406s code = [self.visit(x) for x in self._remove_docstring(node.body)] 406s ^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:585: in visit_FunctionDef 406s for item in self._remove_docstring(node.body)) 406s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s body = [Expr(value=Call(func=Attribute(value=Name(...), attr='method', ctx=Load(...)), args=[Constant(value=1, kind=None), Co...one)], keywords=[])), Expr(value=Call(func=Attribute(value=Name(...), attr='g', ctx=Load(...)), args=[], keywords=[]))] 406s 406s def _remove_docstring(self, body): 406s if body and isinstance(body[0], ast.Expr) and \ 406s > isinstance(body[0].value, ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/translator.py:228: AttributeError 406s __________________________________ test_while __________________________________ 406s 406s def test_while(): 406s # Given 406s src = dedent(''' 406s while x < 21: 406s do(x) 406s do1(x) 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s double x; 406s while ((x < 21)) { 406s do(x); 406s do1(x); 406s } 406s ''') 406s > assert code.strip() == expect.strip() 406s E AssertionError: assert 'double x;\nw... do1(x);\n}' == 'double x;\nw... do1(x);\n}' 406s E 406s E double x; 406s E - while ((x < 21)) { 406s E ? ^^ 406s E + while ((x < None)) { 406s E ? ^^^^ 406s E do(x); 406s E do1(x); 406s E } 406s 406s ../../build.few/src/compyle/tests/test_translator.py:568: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s double x; 406s while ((x < None)) { 406s do(x); 406s do1(x); 406s } 406s 406s ________________________ test_bool_true_false_and_none _________________________ 406s 406s def test_bool_true_false_and_none(): 406s # Given 406s src = dedent(''' 406s while True: 406s pass 406s if False: 406s pass 406s if x is None or x is not None: 406s pass 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s double x; 406s while (1) { 406s ; 406s } 406s 406s if (0) { 406s ; 406s } 406s 406s if (((x == NULL) || (x != NULL))) { 406s ; 406s } 406s ''') 406s > assert code.strip() == expect.strip() 406s E AssertionError: assert 'double x;\nw...) {\n ;\n}' == 'double x;\nw...) {\n ;\n}' 406s E 406s E double x; 406s E - while (1) { 406s E ? ^ 406s E + while (None) { 406s E ? ^^^^ 406s E ;... 406s E 406s E ...Full output truncated (15 lines hidden), use '-vv' to show 406s 406s ../../build.few/src/compyle/tests/test_translator.py:600: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s double x; 406s while (None) { 406s ; 406s } 406s 406s if (None) { 406s ; 406s } 406s 406s if (((x == None) || (x != None))) { 406s ; 406s } 406s 406s ___________________________________ test_for ___________________________________ 406s 406s def test_for(): 406s # Given 406s src = dedent(''' 406s for i in range(5): 406s do(i) 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s for (long i=0; i<5; i+=1) { 406s do(i); 406s } 406s ''') 406s > assert code.strip() == expect.strip() 406s E AssertionError: assert 'long __cpy_s... do(i);\n}' == 'for (long i=... do(i);\n}' 406s E 406s E + long __cpy_stop_0 = None; 406s E - for (long i=0; i<5; i+=1) { 406s E ? ^ 406s E + for (long i=0; i<__cpy_stop_0; i+=1) { 406s E ? ^^^^^^^^^^^^ 406s E do(i); 406s E } 406s 406s ../../build.few/src/compyle/tests/test_translator.py:619: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s long __cpy_stop_0 = None; 406s for (long i=0; i<__cpy_stop_0; i+=1) { 406s do(i); 406s } 406s 406s ________________________ test_for_with_decreasing_range ________________________ 406s 406s def test_for_with_decreasing_range(): 406s # Given 406s src = dedent(''' 406s for i in range(10, -1, -1): 406s pass 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s for (long i=10; i>-1; i+=-1) { 406s ; 406s } 406s ''') 406s > assert code.strip() == expect.strip() 406s E AssertionError: assert 'long __cpy_s... ;\n }\n}' == 'for (long i=...) {\n ;\n}' 406s E 406s E - for (long i=10; i>-1; i+=-1) { 406s E + long __cpy_stop_0 = -None; 406s E + long __cpy_step_0 = -None; 406s E + if (__cpy_step_0 < 0) { 406s E + for (long i=None; i>__cpy_stop_0; i+=__cpy_step_0) { 406s E - ;... 406s E 406s E ...Full output truncated (9 lines hidden), use '-vv' to show 406s 406s ../../build.few/src/compyle/tests/test_translator.py:672: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s long __cpy_stop_0 = -None; 406s long __cpy_step_0 = -None; 406s if (__cpy_step_0 < 0) { 406s for (long i=None; i>__cpy_stop_0; i+=__cpy_step_0) { 406s ; 406s } 406s } 406s else { 406s for (long i=None; i<__cpy_stop_0; i+=__cpy_step_0) { 406s ; 406s } 406s } 406s 406s ____________________________ test_for_with_declare _____________________________ 406s 406s def test_for_with_declare(): 406s # Given 406s src = dedent(''' 406s i = declare('int') 406s for i in range(5): 406s do(i) 406s ''') 406s 406s # When 406s > code = py2c(src) 406s ^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_translator.py:684: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/translator.py:65: in py2c 406s result = converter.convert(src) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:252: in convert 406s result = self.visit(code) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:652: in visit_Module 406s return '\n'.join( 406s ../../build.few/src/compyle/translator.py:653: in 406s self.visit(item) for item in node.body 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Assign(targets=[Name(id='i', ctx=Store())], value=Call(func=Name(id='declare', ctx=Load(...)), args=[Constant(value='int', kind=None)], keywords=[]), type_comment=None) 406s 406s def visit_Assign(self, node): 406s if len(node.targets) != 1: 406s self.error("Assignments can have only one target.", node) 406s left, right = node.targets[0], node.value 406s if isinstance(right, ast.Call) and \ 406s isinstance(right.func, ast.Name) and right.func.id == 'declare': 406s > if not isinstance(right.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/translator.py:344: AttributeError 406s ________________________________ test_two_fors _________________________________ 406s 406s def test_two_fors(): 406s # Given 406s src = dedent(''' 406s for i in range(5): 406s do(i) 406s for i in range(5): 406s pass 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s for (long i=0; i<5; i+=1) { 406s do(i); 406s } 406s 406s for (long i=0; i<5; i+=1) { 406s ; 406s } 406s ''') 406s > assert code.strip() == expect.strip() 406s E AssertionError: assert 'long __cpy_s...) {\n ;\n}' == 'for (long i=...) {\n ;\n}' 406s E 406s E + long __cpy_stop_0 = None; 406s E - for (long i=0; i<5; i+=1) { 406s E ? ^ 406s E + for (long i=0; i<__cpy_stop_0; i+=1) { 406s E ? ^^^^^^^^^^^^ 406s E do(i);... 406s E 406s E ...Full output truncated (9 lines hidden), use '-vv' to show 406s 406s ../../build.few/src/compyle/tests/test_translator.py:718: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s long __cpy_stop_0 = None; 406s for (long i=0; i<__cpy_stop_0; i+=1) { 406s do(i); 406s } 406s 406s long __cpy_stop_1 = None; 406s for (long i=0; i<__cpy_stop_1; i+=1) { 406s ; 406s } 406s 406s ____________________________ test_for_with_symbols _____________________________ 406s 406s def test_for_with_symbols(): 406s # Given 406s src = dedent(''' 406s n = declare('int') 406s n = 25 406s for i in range(n): 406s pass 406s for i in range(0, n+1, step()): 406s pass 406s ''') 406s 406s # When 406s > code = py2c(src) 406s ^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_translator.py:733: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/translator.py:65: in py2c 406s result = converter.convert(src) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:252: in convert 406s result = self.visit(code) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:652: in visit_Module 406s return '\n'.join( 406s ../../build.few/src/compyle/translator.py:653: in 406s self.visit(item) for item in node.body 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Assign(targets=[Name(id='n', ctx=Store())], value=Call(func=Name(id='declare', ctx=Load(...)), args=[Constant(value='int', kind=None)], keywords=[]), type_comment=None) 406s 406s def visit_Assign(self, node): 406s if len(node.targets) != 1: 406s self.error("Assignments can have only one target.", node) 406s left, right = node.targets[0], node.value 406s if isinstance(right, ast.Call) and \ 406s isinstance(right.func, ast.Name) and right.func.id == 'declare': 406s > if not isinstance(right.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/translator.py:344: AttributeError 406s _________________________ test_nested_for_with_symbols _________________________ 406s 406s def test_nested_for_with_symbols(): 406s # Given 406s src = dedent(''' 406s n = declare('int') 406s n = 25 406s for i in range(n): 406s for j in range(0, n+1, step()): 406s pass 406s for i in range(n+1): 406s for j in range(0, n+2, step()): 406s pass 406s ''') 406s 406s # When 406s > code = py2c(src) 406s ^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_translator.py:774: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/translator.py:65: in py2c 406s result = converter.convert(src) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:252: in convert 406s result = self.visit(code) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:652: in visit_Module 406s return '\n'.join( 406s ../../build.few/src/compyle/translator.py:653: in 406s self.visit(item) for item in node.body 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Assign(targets=[Name(id='n', ctx=Store())], value=Call(func=Name(id='declare', ctx=Load(...)), args=[Constant(value='int', kind=None)], keywords=[]), type_comment=None) 406s 406s def visit_Assign(self, node): 406s if len(node.targets) != 1: 406s self.error("Assignments can have only one target.", node) 406s left, right = node.targets[0], node.value 406s if isinstance(right, ast.Call) and \ 406s isinstance(right.func, ast.Name) and right.func.id == 'declare': 406s > if not isinstance(right.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/translator.py:344: AttributeError 406s ___________________________ test_with_two_functions ____________________________ 406s 406s def test_with_two_functions(): 406s # Given 406s src = dedent(''' 406s def f(): 406s n = declare('int') 406s n = 20 406s for i in range(n): 406s pass 406s for i in range(n): 406s pass 406s def g(): 406s n = declare('int') 406s n = 20 406s for i in range(n): 406s pass 406s for i in range(n): 406s pass 406s ''') 406s > code = py2c(src) 406s ^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_translator.py:833: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/translator.py:65: in py2c 406s result = converter.convert(src) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:252: in convert 406s result = self.visit(code) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:652: in visit_Module 406s return '\n'.join( 406s ../../build.few/src/compyle/translator.py:653: in 406s self.visit(item) for item in node.body 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:584: in visit_FunctionDef 406s body = '\n'.join(self._indent_block(self.visit(item)) 406s ../../build.few/src/compyle/translator.py:584: in 406s body = '\n'.join(self._indent_block(self.visit(item)) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Assign(targets=[Name(id='n', ctx=Store())], value=Call(func=Name(id='declare', ctx=Load(...)), args=[Constant(value='int', kind=None)], keywords=[]), type_comment=None) 406s 406s def visit_Assign(self, node): 406s if len(node.targets) != 1: 406s self.error("Assignments can have only one target.", node) 406s left, right = node.targets[0], node.value 406s if isinstance(right, ast.Call) and \ 406s isinstance(right.func, ast.Name) and right.func.id == 'declare': 406s > if not isinstance(right.args[0], ast.Str): 406s ^^^^^^^ 406s E AttributeError: module 'ast' has no attribute 'Str' 406s 406s ../../build.few/src/compyle/translator.py:344: AttributeError 406s _________________________ test_for_with_break_continue _________________________ 406s 406s def test_for_with_break_continue(): 406s # Given 406s src = dedent(''' 406s for i in range(10): 406s if i%7 == 0: 406s break 406s if i%2 == 0: 406s continue 406s do(i) 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s for (long i=0; i<10; i+=1) { 406s if (((i % 7) == 0)) { 406s break; 406s } 406s if (((i % 2) == 0)) { 406s continue; 406s } 406s do(i); 406s } 406s ''') 406s > assert code.strip() == expect.strip() 406s E AssertionError: assert 'long __cpy_s... do(i);\n}' == 'for (long i=... do(i);\n}' 406s E 406s E + long __cpy_stop_0 = None; 406s E - for (long i=0; i<10; i+=1) { 406s E ? ^ 406s E + for (long i=0; i<__cpy_stop_0; i+=1) { 406s E ? ^^^^^^^^^^^ 406s E - if (((i % 7) == 0)) {... 406s E 406s E ...Full output truncated (13 lines hidden), use '-vv' to show 406s 406s ../../build.few/src/compyle/tests/test_translator.py:895: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s long __cpy_stop_0 = None; 406s for (long i=0; i<__cpy_stop_0; i+=1) { 406s if (((i % None) == None)) { 406s break; 406s } 406s if (((i % None) == None)) { 406s continue; 406s } 406s do(i); 406s } 406s 406s ____________________________ test_attribute_access _____________________________ 406s 406s def test_attribute_access(): 406s # Given 406s src = dedent(''' 406s self.x = 1 406s ''') 406s 406s # When 406s code = py2c(src) 406s 406s # Then 406s expect = dedent(''' 406s double self; 406s self->x = 1; 406s ''') 406s 406s > assert code.strip() == expect.strip() 406s E AssertionError: assert 'double self;...lf->x = None;' == 'double self;\nself->x = 1;' 406s E 406s E double self; 406s E - self->x = 1; 406s E ? ^ 406s E + self->x = None; 406s E ? ^^^^ 406s 406s ../../build.few/src/compyle/tests/test_translator.py:975: AssertionError 406s ----------------------------- Captured stdout call ----------------------------- 406s double self; 406s self->x = None; 406s _____________________ test_declare_call_declares_variable ______________________ 406s 406s def test_declare_call_declares_variable(): 406s # Given 406s src = dedent(''' 406s x = declare('int') 406s x += 1 406s ''') 406s 406s # When 406s > code = py2c(src) 406s ^^^^^^^^^ 406s 406s ../../build.few/src/compyle/tests/test_translator.py:986: 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s ../../build.few/src/compyle/translator.py:65: in py2c 406s result = converter.convert(src) 406s ^^^^^^^^^^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:252: in convert 406s result = self.visit(code) 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s ../../build.few/src/compyle/translator.py:652: in visit_Module 406s return '\n'.join( 406s ../../build.few/src/compyle/translator.py:653: in 406s self.visit(item) for item in node.body 406s ^^^^^^^^^^^^^^^^ 406s /usr/lib/python3.14/ast.py:506: in visit 406s return visitor(node) 406s ^^^^^^^^^^^^^ 406s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 406s 406s self = 406s node = Assign(targets=[Name(id='x', ctx=Store())], value=Call(func=Name(id='declare', ctx=Load(...)), args=[Constant(value='int', kind=None)], keywords=[]), type_comment=None) 406s 406s def visit_Assign(self, node): 406s if len(node.targets) != 1: 406s self.error("Assignments can have only one target.", node) 406s left, right = node.targets[0], node.value 406s if isinstance(right, ast.Call) and \ 406s isinstance(right.func, ast.Name) and right.func.id == 'declare': 406s > if not isinstance(right.args[0], ast.Str): 406s ^^^^^^^ 407s E AttributeError: module 'ast' has no attribute 'Str' 407s 407s ../../build.few/src/compyle/translator.py:344: AttributeError 407s _____________________________ test_declare_matrix ______________________________ 407s 407s def test_declare_matrix(): 407s # Given 407s src = dedent(''' 407s x = declare('matrix((3,))') 407s do(x[0]) 407s ''') 407s 407s # When 407s > code = py2c(src) 407s ^^^^^^^^^ 407s 407s ../../build.few/src/compyle/tests/test_translator.py:1004: 407s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 407s ../../build.few/src/compyle/translator.py:65: in py2c 407s result = converter.convert(src) 407s ^^^^^^^^^^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:252: in convert 407s result = self.visit(code) 407s ^^^^^^^^^^^^^^^^ 407s /usr/lib/python3.14/ast.py:506: in visit 407s return visitor(node) 407s ^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:652: in visit_Module 407s return '\n'.join( 407s ../../build.few/src/compyle/translator.py:653: in 407s self.visit(item) for item in node.body 407s ^^^^^^^^^^^^^^^^ 407s /usr/lib/python3.14/ast.py:506: in visit 407s return visitor(node) 407s ^^^^^^^^^^^^^ 407s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 407s 407s self = 407s node = Assign(targets=[Name(id='x', ctx=Store())], value=Call(func=Name(id='declare', ctx=Load(...)), args=[Constant(value='matrix((3,))', kind=None)], keywords=[]), type_comment=None) 407s 407s def visit_Assign(self, node): 407s if len(node.targets) != 1: 407s self.error("Assignments can have only one target.", node) 407s left, right = node.targets[0], node.value 407s if isinstance(right, ast.Call) and \ 407s isinstance(right.func, ast.Name) and right.func.id == 'declare': 407s > if not isinstance(right.args[0], ast.Str): 407s ^^^^^^^ 407s E AttributeError: module 'ast' has no attribute 'Str' 407s 407s ../../build.few/src/compyle/translator.py:344: AttributeError 407s ________________ test_declare_call_declares_multiple_variables _________________ 407s 407s def test_declare_call_declares_multiple_variables(): 407s # Given 407s src = dedent(''' 407s x, y = declare('int', 2) 407s u, v = declare('matrix(3)', 2) 407s A = declare('matrix((2,2), "long")') 407s ''') 407s 407s # When 407s > code = py2c(src) 407s ^^^^^^^^^ 407s 407s ../../build.few/src/compyle/tests/test_translator.py:1055: 407s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 407s ../../build.few/src/compyle/translator.py:65: in py2c 407s result = converter.convert(src) 407s ^^^^^^^^^^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:252: in convert 407s result = self.visit(code) 407s ^^^^^^^^^^^^^^^^ 407s /usr/lib/python3.14/ast.py:506: in visit 407s return visitor(node) 407s ^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:652: in visit_Module 407s return '\n'.join( 407s ../../build.few/src/compyle/translator.py:653: in 407s self.visit(item) for item in node.body 407s ^^^^^^^^^^^^^^^^ 407s /usr/lib/python3.14/ast.py:506: in visit 407s return visitor(node) 407s ^^^^^^^^^^^^^ 407s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 407s 407s self = 407s node = Assign(targets=[Tuple(elts=[Name(id='x', ctx=Store(...)), Name(id='y', ctx=Store(...))], ctx=Store())], value=Call(fun...ctx=Load(...)), args=[Constant(value='int', kind=None), Constant(value=2, kind=None)], keywords=[]), type_comment=None) 407s 407s def visit_Assign(self, node): 407s if len(node.targets) != 1: 407s self.error("Assignments can have only one target.", node) 407s left, right = node.targets[0], node.value 407s if isinstance(right, ast.Call) and \ 407s isinstance(right.func, ast.Name) and right.func.id == 'declare': 407s > if not isinstance(right.args[0], ast.Str): 407s ^^^^^^^ 407s E AttributeError: module 'ast' has no attribute 'Str' 407s 407s ../../build.few/src/compyle/translator.py:344: AttributeError 407s __________________________________ test_class __________________________________ 407s 407s def test_class(): 407s # Given 407s src = dedent(''' 407s class Foo(object): 407s def g(self, x=0.0): 407s return x*2.0 407s def f(self, x=0.0): 407s y = x + 1 407s do(self.a, x) 407s z = self.g(y) 407s ''') 407s 407s # When 407s code = py2c(src) 407s 407s # Then 407s expect = dedent(''' 407s double Foo_g(Foo* self, double x) 407s { 407s return (x * 2.0); 407s } 407s 407s void Foo_f(Foo* self, double x) 407s { 407s double y; 407s double z; 407s y = (x + 1); 407s do(self->a, x); 407s z = Foo_g(self, y); 407s } 407s ''') 407s > assert code.strip() == expect.strip() 407s E AssertionError: assert 'double Foo_g...(self, y);\n}' == 'double Foo_g...(self, y);\n}' 407s E 407s E Skipping 42 identical leading characters in diff, use -v to show 407s E - turn (x * 2.0); 407s E ? ^^^ 407s E + turn (x * None); 407s E ? ^^^^ 407s E }... 407s E 407s E ...Full output truncated (12 lines hidden), use '-vv' to show 407s 407s ../../build.few/src/compyle/tests/test_translator.py:1097: AssertionError 407s ----------------------------- Captured stdout call ----------------------------- 407s double Foo_g(Foo* self, double x) 407s { 407s return (x * None); 407s } 407s 407s void Foo_f(Foo* self, double x) 407s { 407s double y; 407s double z; 407s y = (x + None); 407s do(self->a, x); 407s z = Foo_g(self, y); 407s } 407s 407s _____________________________ test_wrapping_class ______________________________ 407s 407s def test_wrapping_class(): 407s # Given 407s class Dummy(object): 407s '''Class Docstring''' 407s 407s def __init__(self, x=0, f=0.0, s=''): 407s "Constructor docstring" 407s self.x = x 407s self.f = f 407s self.s = s 407s self._private = 1 407s 407s def method(self): 407s '''Method docstring. 407s ''' 407s pass 407s 407s obj = Dummy() 407s 407s # When 407s c = CConverter() 407s > result = c.parse_instance(obj) 407s ^^^^^^^^^^^^^^^^^^^^^ 407s 407s ../../build.few/src/compyle/tests/test_translator.py:1191: 407s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 407s ../../build.few/src/compyle/translator.py:297: in parse_instance 407s code += self.convert(src, ignore_methods) 407s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:252: in convert 407s result = self.visit(code) 407s ^^^^^^^^^^^^^^^^ 407s /usr/lib/python3.14/ast.py:506: in visit 407s return visitor(node) 407s ^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:652: in visit_Module 407s return '\n'.join( 407s ../../build.few/src/compyle/translator.py:653: in 407s self.visit(item) for item in node.body 407s ^^^^^^^^^^^^^^^^ 407s /usr/lib/python3.14/ast.py:506: in visit 407s return visitor(node) 407s ^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:417: in visit_ClassDef 407s code = [self.visit(x) for x in self._remove_docstring(node.body)] 407s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 407s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 407s 407s self = 407s body = [Expr(value=Constant(value='Class Docstring', kind=None)), FunctionDef(name='__init__', args=arguments(posonlyargs=[],...ethod docstring.\n ', kind=None)), Pass()], decorator_list=[], returns=None, type_comment=None, type_params=[])] 407s 407s def _remove_docstring(self, body): 407s if body and isinstance(body[0], ast.Expr) and \ 407s > isinstance(body[0].value, ast.Str): 407s ^^^^^^^ 407s E AttributeError: module 'ast' has no attribute 'Str' 407s 407s ../../build.few/src/compyle/translator.py:228: AttributeError 407s ___________________ test_wrapping_class_with_ignore_methods ____________________ 407s 407s def test_wrapping_class_with_ignore_methods(): 407s # Given 407s class Dummy1(object): 407s '''Class Docstring''' 407s 407s def f(self): 407s pass 407s 407s def not_me(self): 407s pass 407s 407s obj = Dummy1() 407s 407s # When 407s c = CConverter() 407s > result = c.parse_instance(obj, ignore_methods=['not_me']) 407s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 407s 407s ../../build.few/src/compyle/tests/test_translator.py:1232: 407s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 407s ../../build.few/src/compyle/translator.py:297: in parse_instance 407s code += self.convert(src, ignore_methods) 407s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:252: in convert 407s result = self.visit(code) 407s ^^^^^^^^^^^^^^^^ 407s /usr/lib/python3.14/ast.py:506: in visit 407s return visitor(node) 407s ^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:652: in visit_Module 407s return '\n'.join( 407s ../../build.few/src/compyle/translator.py:653: in 407s self.visit(item) for item in node.body 407s ^^^^^^^^^^^^^^^^ 407s /usr/lib/python3.14/ast.py:506: in visit 407s return visitor(node) 407s ^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:417: in visit_ClassDef 407s code = [self.visit(x) for x in self._remove_docstring(node.body)] 407s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 407s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 407s 407s self = 407s body = [Expr(value=Constant(value='Class Docstring', kind=None)), FunctionDef(name='f', args=arguments(posonlyargs=[], args=[...aults=[], kwarg=None, defaults=[]), body=[Pass()], decorator_list=[], returns=None, type_comment=None, type_params=[])] 407s 407s def _remove_docstring(self, body): 407s if body and isinstance(body[0], ast.Expr) and \ 407s > isinstance(body[0].value, ast.Str): 407s ^^^^^^^ 407s E AttributeError: module 'ast' has no attribute 'Str' 407s 407s ../../build.few/src/compyle/translator.py:228: AttributeError 407s __________________________ test_cuda_local_conversion __________________________ 407s 407s def test_cuda_local_conversion(): 407s @annotate(xc='ldoublep', yc='lintp') 407s def knl(xc, yc): 407s xc[LID_0] = 1 407s yc[LID_0] = 1 407s 407s # When 407s converter = CUDAConverter() 407s code = converter.parse(knl) 407s 407s # Then 407s expect_1 = dedent(''' 407s WITHIN_KERNEL void knl(int size_xc, int size_yc) 407s { 407s extern LOCAL_MEM float shared_buff[]; 407s double* xc = (double*) shared_buff; 407s int* yc = (int*) &xc[size_xc]; 407s xc[LID_0] = 1; 407s yc[LID_0] = 1; 407s } 407s ''') 407s 407s expect_2 = dedent(''' 407s WITHIN_KERNEL void knl(int size_xc, int size_yc) 407s { 407s extern LOCAL_MEM float shared_buff[]; 407s int* yc = (int*) shared_buff; 407s double* xc = (double*) &yc[size_yc]; 407s xc[LID_0] = 1; 407s yc[LID_0] = 1; 407s } 407s ''') 407s 407s > assert code.strip() == expect_1.strip() or code.strip() == expect_2.strip() 407s E AssertionError: assert ('WITHIN_KERNE...0] = None;\n}' == 'WITHIN_KERNE...ID_0] = 1;\n}' 407s E 407s E Skipping 174 identical leading characters in diff, use -v to show 407s E - [LID_0] = 1; 407s E ? ^ 407s E + [LID_0] = None; 407s E ? ^^^^ 407s E - yc[LID_0] = 1;... 407s E 407s E ...Full output truncated (4 lines hidden), use '-vv' to show or 'WITHIN_KERNE...0] = None;\n}' == 'WITHIN_KERNE...ID_0] = 1;\n}' 407s E 407s E Skipping 87 identical leading characters in diff, use -v to show 407s E ff[]; 407s E - int* yc = (int*) shared_buff; 407s E - double* xc = (double*) &yc[size_yc]; 407s E ? ---- ^^ ^^^ 407s E + double* xc = (double*) shared_buff;... 407s E 407s E ...Full output truncated (11 lines hidden), use '-vv' to show) 407s 407s ../../build.few/src/compyle/tests/test_translator.py:1333: AssertionError 407s ________________________ test_handles_parsing_functions ________________________ 407s 407s def test_handles_parsing_functions(): 407s # Given 407s def f(x=1.0): 407s return x + 1 407s 407s # When 407s t = CConverter() 407s code = t.parse_function(f) 407s 407s # Then 407s expect = dedent(''' 407s double f(double x) 407s { 407s return (x + 1); 407s } 407s ''') 407s > assert code.strip() == expect.strip() 407s E AssertionError: assert 'double f(dou...x + None);\n}' == 'double f(dou...n (x + 1);\n}' 407s E 407s E double f(double x) 407s E { 407s E - return (x + 1); 407s E ? ^ 407s E + return (x + None); 407s E ? ^^^^ 407s E } 407s 407s ../../build.few/src/compyle/tests/test_translator.py:1352: AssertionError 407s _______________________________ test_cast_works ________________________________ 407s 407s def test_cast_works(): 407s # Given 407s def f(x=1.0): 407s return cast(x, "float") 407s 407s # When 407s t = OpenCLConverter() 407s > code = t.parse_function(f) 407s ^^^^^^^^^^^^^^^^^^^ 407s 407s ../../build.few/src/compyle/tests/test_translator.py:1467: 407s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 407s ../../build.few/src/compyle/translator.py:307: in parse_function 407s code = self.convert(src) 407s ^^^^^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:252: in convert 407s result = self.visit(code) 407s ^^^^^^^^^^^^^^^^ 407s /usr/lib/python3.14/ast.py:506: in visit 407s return visitor(node) 407s ^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:652: in visit_Module 407s return '\n'.join( 407s ../../build.few/src/compyle/translator.py:653: in 407s self.visit(item) for item in node.body 407s ^^^^^^^^^^^^^^^^ 407s /usr/lib/python3.14/ast.py:506: in visit 407s return visitor(node) 407s ^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:584: in visit_FunctionDef 407s body = '\n'.join(self._indent_block(self.visit(item)) 407s ../../build.few/src/compyle/translator.py:584: in 407s body = '\n'.join(self._indent_block(self.visit(item)) 407s ^^^^^^^^^^^^^^^^ 407s /usr/lib/python3.14/ast.py:506: in visit 407s return visitor(node) 407s ^^^^^^^^^^^^^ 407s ../../build.few/src/compyle/translator.py:692: in visit_Return 407s return 'return %s;' % (self.visit(node.value)) 407s ^^^^^^^^^^^^^^^^^^^^^^ 407s /usr/lib/python3.14/ast.py:506: in visit 407s return visitor(node) 407s ^^^^^^^^^^^^^ 407s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 407s 407s self = 407s node = Call(func=Name(id='cast', ctx=Load()), args=[Name(id='x', ctx=Load()), Constant(value='float', kind=None)], keywords=[]) 407s 407s def visit_Call(self, node): 407s if isinstance(node.func, ast.Name): 407s if node.func.id == 'address': 407s return '(&%s)' % self.visit(node.args[0]) 407s elif 'atomic' in node.func.id: 407s return self.render_atomic(node.func.id, node.args[0]) 407s elif node.func.id == 'cast': 407s > return '(%s) (%s)' % (node.args[1].s, self.visit(node.args[0])) 407s ^^^^^^^^^^^^^^ 407s E AttributeError: 'Constant' object has no attribute 's' 407s 407s ../../build.few/src/compyle/translator.py:388: AttributeError 407s =============================== warnings summary =============================== 407s compyle/tests/test_array.py: 23 warnings 407s /usr/lib/python3/dist-packages/pyopencl/__init__.py:519: CompilerWarning: Non-empty compiler output encountered. Set the environment variable PYOPENCL_COMPILER_OUTPUT=1 to see more. 407s lambda: self._prg.build(options_bytes, devices), 407s 407s compyle/tests/test_array.py::test_trapz[cython] 407s compyle/tests/test_array.py::test_trapz[opencl] 407s /tmp/autopkgtest.SR9j29/build.few/src/compyle/tests/test_array.py:452: DeprecationWarning: `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`. 407s assert(array.trapz(y) == np.trapz(yn)) 407s 407s compyle/tests/test_array.py::test_trapz[cython] 407s /tmp/autopkgtest.SR9j29/build.few/src/compyle/tests/test_array.py:453: DeprecationWarning: `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`. 407s assert(array.trapz(y, x,) == np.trapz(yn, xn)) 407s 407s compyle/tests/test_array.py::test_trapz[cython] 407s /tmp/autopkgtest.SR9j29/build.few/src/compyle/tests/test_array.py:454: DeprecationWarning: `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`. 407s assert(array.trapz(y, dx=3) == np.trapz(yn, dx=3)) 407s 407s compyle/tests/test_jit.py::TestAnnotationHelper::test_non_jit_call_as_call_arg 407s /tmp/autopkgtest.SR9j29/build.few/src/compyle/jit.py:202: UserWarning: 407s In code in line 5: 407s 407s return g(sin(a)) 407s ^ 407s 407s 407s Function called is not marked by the annotate decorator. Argument 407s type defaulting to 'double'. If the type is not 'double', store 407s the value in a variable of appropriate type and use the variable 407s 407s warnings.warn(msg) 407s 407s compyle/tests/test_jit.py::TestAnnotationHelper::test_non_jit_call_in_return 407s /tmp/autopkgtest.SR9j29/build.few/src/compyle/jit.py:202: UserWarning: 407s In code in line 5: 407s 407s return sin(a) 407s ^ 407s 407s 407s Function called is not marked by the annotate decorator. Argument 407s type defaulting to 'double'. If the type is not 'double', store 407s the value in a variable of appropriate type and use the variable 407s 407s warnings.warn(msg) 407s 407s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 407s =========================== short test summary info ============================ 407s FAILED ../../build.few/src/compyle/tests/test_array.py::test_remove[opencl] 407s FAILED ../../build.few/src/compyle/tests/test_array.py::test_align_multiple[cython] 407s FAILED ../../build.few/src/compyle/tests/test_array.py::test_align_multiple[opencl] 407s FAILED ../../build.few/src/compyle/tests/test_array.py::test_sort_by_keys[cython] 407s FAILED ../../build.few/src/compyle/tests/test_array.py::test_radix_sort_by_keys 407s FAILED ../../build.few/src/compyle/tests/test_array.py::test_sort_by_keys_with_output[cython] 407s FAILED ../../build.few/src/compyle/tests/test_array.py::test_diff[int32-opencl] 407s FAILED ../../build.few/src/compyle/tests/test_array.py::test_diff[float32-opencl] 407s FAILED ../../build.few/src/compyle/tests/test_array.py::test_diff[float64-opencl] 407s FAILED ../../build.few/src/compyle/tests/test_array.py::test_trapz[opencl] - ... 407s FAILED ../../build.few/src/compyle/tests/test_array.py::test_take_bool[opencl-int32] 407s FAILED ../../build.few/src/compyle/tests/test_array.py::test_take_bool[opencl-float32] 407s FAILED ../../build.few/src/compyle/tests/test_array.py::test_take_bool[opencl-float64] 407s FAILED ../../build.few/src/compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_function_with_annotation 407s FAILED ../../build.few/src/compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_declare 407s FAILED ../../build.few/src/compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_matrix 407s FAILED ../../build.few/src/compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_python3_annotation 407s FAILED ../../build.few/src/compyle/tests/test_jit.py::TestAnnotationHelper::test_cast_return_type 407s FAILED ../../build.few/src/compyle/tests/test_jit.py::TestAnnotationHelper::test_declare_multiple_variables 407s FAILED ../../build.few/src/compyle/tests/test_jit.py::TestAnnotationHelper::test_variable_as_call_arg 407s FAILED ../../build.few/src/compyle/tests/test_jit.py::TestAnnotationHelper::test_variable_as_call_arg_nonjit 407s FAILED ../../build.few/src/compyle/tests/test_low_level.py::TestKernel::test_kernel_with_local_memory_opencl 407s FAILED ../../build.few/src/compyle/tests/test_low_level.py::TestKernel::test_simple_kernel_opencl 407s FAILED ../../build.few/src/compyle/tests/test_low_level.py::TestCython::test_cython_code_with_return_and_nested_call 407s FAILED ../../build.few/src/compyle/tests/test_low_level.py::TestCython::test_cython_with_externs 407s FAILED ../../build.few/src/compyle/tests/test_template.py::test_simple_template 407s FAILED ../../build.few/src/compyle/tests/test_template.py::test_that_source_code_is_available 407s FAILED ../../build.few/src/compyle/tests/test_template.py::test_template_usable_in_code_generation 407s FAILED ../../build.few/src/compyle/tests/test_template.py::test_template_with_extra_args 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_simple_assignment_expression 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_multiple_assignment_expressions 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_if_block - ... 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_conditionals 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_ternary_operator 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_multiple_boolops 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_multiple_bitwise_ops 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_power - Ass... 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_calling_function 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_calling_printf_with_string 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_subscript 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_simple_function_with_return 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_annotated_function 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_py3_annotations 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_calling_method_of_known_type 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_calling_method_of_known_type_in_method 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_while - Ass... 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_bool_true_false_and_none 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_for - Asser... 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_for_with_decreasing_range 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_for_with_declare 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_two_fors - ... 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_for_with_symbols 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_nested_for_with_symbols 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_with_two_functions 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_for_with_break_continue 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_attribute_access 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_declare_call_declares_variable 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_declare_matrix 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_declare_call_declares_multiple_variables 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_class - Ass... 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_wrapping_class 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_wrapping_class_with_ignore_methods 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_cuda_local_conversion 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_handles_parsing_functions 407s FAILED ../../build.few/src/compyle/tests/test_translator.py::test_cast_works 407s = 65 failed, 201 passed, 57 skipped, 3 deselected, 1 xfailed, 29 warnings in 95.58s (0:01:35) = 407s E: pybuild pybuild:483: test: plugin distutils failed with: exit code=1: cd /tmp/autopkgtest.SR9j29/autopkgtest_tmp/build; python3.14 -m pytest -k "not test_that_multiple_compiles_do_not_occur_for_same_source and not test_const_as_call_arg and not test_const_in_return" --ignore=/tmp/autopkgtest.SR9j29/build.few/src/compyle/tests/test_cuda.py --ignore=/tmp/autopkgtest.SR9j29/build.few/src/compyle/tests/test_parallel.py /tmp/autopkgtest.SR9j29/build.few/src/compyle/tests 407s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.13 3.14" returned exit code 13 407s make: *** [/tmp/kPxaspMQ9n/run:4: pybuild-autopkgtest] Error 25 407s pybuild-autopkgtest: error: /tmp/kPxaspMQ9n/run pybuild-autopkgtest returned exit code 2 407s autopkgtest [05:57:25]: test pybuild-autopkgtest: -----------------------] 408s pybuild-autopkgtest FAIL non-zero exit status 25 408s autopkgtest [05:57:26]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 408s autopkgtest [05:57:26]: @@@@@@@@@@@@@@@@@@@@ summary 408s pybuild-autopkgtest FAIL non-zero exit status 25