0s autopkgtest [16:28:44]: starting date and time: 2026-01-22 16:28:44+0000 0s autopkgtest [16:28:44]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [16:28:44]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.6efugpz4/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-arm64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@sto01-arm64-17.secgroup --name adt-resolute-arm64-compyle-20260122-162844-juju-7f2275-prod-proposed-migration-environment-15-4a4962ac-7472-4b82-8de1-2aebe065c6a4 --image adt/ubuntu-resolute-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-autopkgtest-workers-arm64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-arm64-compyle-20260122-162844-juju-7f2275-prod-proposed-migration-environment-15-4a4962ac-7472-4b82-8de1-2aebe065c6a4 from image adt/ubuntu-resolute-arm64-server-20260122.img (UUID ed27afc7-5f46-4e8b-ad73-864280a0ddbb)... 67s autopkgtest [16:29:51]: testbed dpkg architecture: arm64 68s autopkgtest [16:29:52]: testbed apt version: 3.1.12 68s autopkgtest [16:29:52]: @@@@@@@@@@@@@@@@@@@@ test bed setup 68s autopkgtest [16:29:52]: testbed release detected to be: None 69s autopkgtest [16:29:53]: updating testbed package index (apt update) 70s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 70s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 70s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 70s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 70s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [19.2 kB] 70s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 70s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [815 kB] 70s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [80.9 kB] 70s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [103 kB] 70s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 c-n-f Metadata [3316 B] 70s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [7876 B] 70s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 c-n-f Metadata [120 B] 70s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [639 kB] 70s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 c-n-f Metadata [16.2 kB] 70s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [4636 B] 70s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 c-n-f Metadata [460 B] 73s Fetched 1818 kB in 1s (1370 kB/s) 75s Reading package lists... 76s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 77s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 77s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 77s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 78s Reading package lists... 78s Reading package lists... 78s Building dependency tree... 78s Reading state information... 78s Calculating upgrade... 79s The following packages were automatically installed and are no longer required: 79s python3.13 python3.13-minimal 79s Use 'sudo apt autoremove' to remove them. 79s The following NEW packages will be installed: 79s libpython3.14-minimal libpython3.14-stdlib python3.14 python3.14-minimal 79s The following packages will be upgraded: 79s libpython3-stdlib python3 python3-gdbm python3-minimal 79s 4 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. 79s Need to get 6705 kB of archives. 79s After this operation, 26.0 MB of additional disk space will be used. 79s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-minimal arm64 3.14.2-1 [917 kB] 79s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14-minimal arm64 3.14.2-1 [2548 kB] 79s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-gdbm arm64 3.14.2-1 [11.1 kB] 79s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-minimal arm64 3.14.2-1 [28.2 kB] 79s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3 arm64 3.14.2-1 [22.9 kB] 80s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-stdlib arm64 3.14.2-1 [2351 kB] 80s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14 arm64 3.14.2-1 [816 kB] 80s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libpython3-stdlib arm64 3.14.2-1 [10.9 kB] 80s dpkg-preconfigure: unable to re-open stdin: No such file or directory 80s Fetched 6705 kB in 1s (7268 kB/s) 80s Selecting previously unselected package libpython3.14-minimal:arm64. 80s (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 ... 135223 files and directories currently installed.) 80s Preparing to unpack .../libpython3.14-minimal_3.14.2-1_arm64.deb ... 80s Unpacking libpython3.14-minimal:arm64 (3.14.2-1) ... 81s Selecting previously unselected package python3.14-minimal. 81s Preparing to unpack .../python3.14-minimal_3.14.2-1_arm64.deb ... 81s Unpacking python3.14-minimal (3.14.2-1) ... 81s Preparing to unpack .../python3-gdbm_3.14.2-1_arm64.deb ... 81s Unpacking python3-gdbm (3.14.2-1) over (3.13.9-1) ... 81s Setting up libpython3.14-minimal:arm64 (3.14.2-1) ... 81s Setting up python3.14-minimal (3.14.2-1) ... 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 ... 135565 files and directories currently installed.) 83s Preparing to unpack .../python3-minimal_3.14.2-1_arm64.deb ... 83s Unpacking python3-minimal (3.14.2-1) over (3.13.7-1) ... 83s Setting up python3-minimal (3.14.2-1) ... 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 ... 135565 files and directories currently installed.) 83s Preparing to unpack .../python3_3.14.2-1_arm64.deb ... 83s running python pre-rtupdate hooks for python3.14... 83s Unpacking python3 (3.14.2-1) over (3.13.7-1) ... 84s Selecting previously unselected package libpython3.14-stdlib:arm64. 84s Preparing to unpack .../libpython3.14-stdlib_3.14.2-1_arm64.deb ... 84s Unpacking libpython3.14-stdlib:arm64 (3.14.2-1) ... 84s Selecting previously unselected package python3.14. 84s Preparing to unpack .../python3.14_3.14.2-1_arm64.deb ... 84s Unpacking python3.14 (3.14.2-1) ... 84s Preparing to unpack .../libpython3-stdlib_3.14.2-1_arm64.deb ... 84s Unpacking libpython3-stdlib:arm64 (3.14.2-1) over (3.13.7-1) ... 84s Setting up libpython3.14-stdlib:arm64 (3.14.2-1) ... 84s Setting up python3.14 (3.14.2-1) ... 85s Setting up libpython3-stdlib:arm64 (3.14.2-1) ... 85s Setting up python3-gdbm (3.14.2-1) ... 85s Setting up python3 (3.14.2-1) ... 85s running python rtupdate hooks for python3.14... 85s running python post-rtupdate hooks for python3.14... 85s Processing triggers for man-db (2.13.1-1) ... 86s Processing triggers for systemd (259-1ubuntu2) ... 86s autopkgtest [16:30:10]: upgrading testbed (apt dist-upgrade and autopurge) 87s Reading package lists... 87s Building dependency tree... 87s Reading state information... 87s Calculating upgrade... 88s The following packages were automatically installed and are no longer required: 88s python3.13 python3.13-minimal 88s Use 'sudo apt autoremove' to remove them. 88s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 88s Reading package lists... 88s Building dependency tree... 88s Reading state information... 88s Solving dependencies... 89s The following packages will be REMOVED: 89s python3.13* python3.13-minimal* 89s 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. 89s After this operation, 7766 kB disk space will be freed. 89s (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 ... 135995 files and directories currently installed.) 89s Removing python3.13 (3.13.11-1) ... 89s Removing python3.13-minimal (3.13.11-1) ... 90s Processing triggers for man-db (2.13.1-1) ... 91s Processing triggers for systemd (259-1ubuntu2) ... 91s (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 ... 135968 files and directories currently installed.) 91s Purging configuration files for python3.13-minimal (3.13.11-1) ... 93s autopkgtest [16:30:17]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 12 16:41:39 UTC 2026 94s autopkgtest [16:30:18]: @@@@@@@@@@@@@@@@@@@@ apt-source compyle 95s Get:1 http://ftpmaster.internal/ubuntu resolute/universe compyle 0.8.1-11 (dsc) [1843 B] 95s Get:2 http://ftpmaster.internal/ubuntu resolute/universe compyle 0.8.1-11 (tar) [123 kB] 95s Get:3 http://ftpmaster.internal/ubuntu resolute/universe compyle 0.8.1-11 (diff) [7400 B] 95s gpgv: Signature made Thu Jun 19 07:40:21 2025 UTC 95s gpgv: using RSA key D54C3BFAFFB042DE382DA5D741CE7F0B9F1B8B32 95s gpgv: Can't check signature: No public key 95s dpkg-source: warning: cannot verify inline signature for ./compyle_0.8.1-11.dsc: no acceptable signature found 95s autopkgtest [16:30:19]: testing package compyle version 0.8.1-11 96s autopkgtest [16:30:20]: build not needed 96s autopkgtest [16:30:20]: test pybuild-autopkgtest: preparing testbed 97s Reading package lists... 97s Building dependency tree... 97s Reading state information... 97s Solving dependencies... 97s The following NEW packages will be installed: 97s autoconf automake autopoint autotools-dev build-essential clang-18 cpp 97s cpp-15 cpp-15-aarch64-linux-gnu cpp-aarch64-linux-gnu cython3 debhelper 97s debugedit dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-15 97s g++-15-aarch64-linux-gnu g++-aarch64-linux-gnu gcc gcc-15 97s gcc-15-aarch64-linux-gnu gcc-aarch64-linux-gnu gettext intltool-debian 97s libarchive-zip-perl libasan8 libblas3 libcc1-0 libclang-common-18-dev 97s libclang-cpp18 libclang1-18 libdebhelper-perl libexpat1-dev 97s libfile-stripnondeterminism-perl libgc1 libgcc-15-dev libgfortran5 libgomp1 97s libhwasan0 libhwloc15 libisl23 libitm1 liblapack3 libllvm18 97s libllvmspirvlib18.1 liblsan0 libmpc3 libobjc-15-dev libobjc4 libpocl2-common 97s libpocl2t64 libpython3-all-dev libpython3-dev libpython3.13-dev 98s libpython3.14 libpython3.14-dev libstdc++-15-dev libtool libtsan2 libubsan1 98s llvm-18-linker-tools llvm-spirv-18 m4 ocl-icd-libopencl1 po-debconf 98s pocl-opencl-icd pybuild-plugin-autopkgtest python3-all python3-all-dev 98s python3-compyle python3-decorator python3-dev python3-iniconfig python3-mako 98s python3-numpy python3-numpy-dev python3-platformdirs python3-pluggy 98s python3-pyopencl python3-pytest python3-pytools python3.13 python3.13-dev 98s python3.13-minimal python3.14-dev zlib1g-dev 98s 0 upgraded, 89 newly installed, 0 to remove and 0 not upgraded. 98s Need to get 154 MB of archives. 98s After this operation, 629 MB of additional disk space will be used. 98s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.13-minimal arm64 3.13.11-1 [2346 kB] 98s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-numpy-dev arm64 1:2.3.5+ds-3 [366 kB] 98s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 libblas3 arm64 3.12.1-7ubuntu1 [181 kB] 98s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 libgfortran5 arm64 15.2.0-11ubuntu1 [450 kB] 98s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 liblapack3 arm64 3.12.1-7ubuntu1 [2299 kB] 98s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-numpy arm64 1:2.3.5+ds-3 [4569 kB] 98s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.13 arm64 3.13.11-1 [758 kB] 98s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 m4 arm64 1.4.20-2 [213 kB] 98s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 autoconf all 2.72-3.1ubuntu1 [384 kB] 98s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 autotools-dev all 20240727.1 [43.4 kB] 98s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 automake all 1:1.18.1-3build1 [582 kB] 98s Get:12 http://ftpmaster.internal/ubuntu resolute/main arm64 autopoint all 0.23.2-1 [620 kB] 98s Get:13 http://ftpmaster.internal/ubuntu resolute/main arm64 libisl23 arm64 0.27-1build1 [676 kB] 98s Get:14 http://ftpmaster.internal/ubuntu resolute/main arm64 libmpc3 arm64 1.3.1-2 [55.6 kB] 98s Get:15 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-15-aarch64-linux-gnu arm64 15.2.0-11ubuntu1 [11.7 MB] 98s Get:16 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-15 arm64 15.2.0-11ubuntu1 [1030 B] 98s Get:17 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [5736 B] 98s Get:18 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp arm64 4:15.2.0-4ubuntu1 [22.4 kB] 98s Get:19 http://ftpmaster.internal/ubuntu resolute/main arm64 libcc1-0 arm64 15.2.0-11ubuntu1 [49.0 kB] 98s Get:20 http://ftpmaster.internal/ubuntu resolute/main arm64 libgomp1 arm64 15.2.0-11ubuntu1 [147 kB] 98s Get:21 http://ftpmaster.internal/ubuntu resolute/main arm64 libitm1 arm64 15.2.0-11ubuntu1 [28.0 kB] 99s Get:22 http://ftpmaster.internal/ubuntu resolute/main arm64 libasan8 arm64 15.2.0-11ubuntu1 [2920 kB] 99s Get:23 http://ftpmaster.internal/ubuntu resolute/main arm64 liblsan0 arm64 15.2.0-11ubuntu1 [1316 kB] 99s Get:24 http://ftpmaster.internal/ubuntu resolute/main arm64 libtsan2 arm64 15.2.0-11ubuntu1 [2690 kB] 99s Get:25 http://ftpmaster.internal/ubuntu resolute/main arm64 libubsan1 arm64 15.2.0-11ubuntu1 [1176 kB] 99s Get:26 http://ftpmaster.internal/ubuntu resolute/main arm64 libhwasan0 arm64 15.2.0-11ubuntu1 [1638 kB] 99s Get:27 http://ftpmaster.internal/ubuntu resolute/main arm64 libgcc-15-dev arm64 15.2.0-11ubuntu1 [2600 kB] 99s Get:28 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-15-aarch64-linux-gnu arm64 15.2.0-11ubuntu1 [23.1 MB] 99s Get:29 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-15 arm64 15.2.0-11ubuntu1 [517 kB] 99s Get:30 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [1206 B] 99s Get:31 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc arm64 4:15.2.0-4ubuntu1 [5016 B] 99s Get:32 http://ftpmaster.internal/ubuntu resolute/main arm64 libstdc++-15-dev arm64 15.2.0-11ubuntu1 [2547 kB] 99s Get:33 http://ftpmaster.internal/ubuntu resolute/main arm64 g++-15-aarch64-linux-gnu arm64 15.2.0-11ubuntu1 [13.2 MB] 100s Get:34 http://ftpmaster.internal/ubuntu resolute/main arm64 g++-15 arm64 15.2.0-11ubuntu1 [24.6 kB] 100s Get:35 http://ftpmaster.internal/ubuntu resolute/main arm64 g++-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [956 B] 100s Get:36 http://ftpmaster.internal/ubuntu resolute/main arm64 g++ arm64 4:15.2.0-4ubuntu1 [1080 B] 100s Get:37 http://ftpmaster.internal/ubuntu resolute/main arm64 build-essential arm64 12.12ubuntu2 [5254 B] 100s Get:38 http://ftpmaster.internal/ubuntu resolute/universe arm64 libllvm18 arm64 1:18.1.8-20ubuntu5 [26.1 MB] 100s Get:39 http://ftpmaster.internal/ubuntu resolute/universe arm64 libclang-cpp18 arm64 1:18.1.8-20ubuntu5 [13.1 MB] 100s Get:40 http://ftpmaster.internal/ubuntu resolute/main arm64 libgc1 arm64 1:8.2.10-1 [95.9 kB] 100s Get:41 http://ftpmaster.internal/ubuntu resolute/universe arm64 libobjc4 arm64 15.2.0-11ubuntu1 [45.4 kB] 100s Get:42 http://ftpmaster.internal/ubuntu resolute/universe arm64 libobjc-15-dev arm64 15.2.0-11ubuntu1 [189 kB] 100s Get:43 http://ftpmaster.internal/ubuntu resolute/universe arm64 libclang-common-18-dev arm64 1:18.1.8-20ubuntu5 [739 kB] 100s Get:44 http://ftpmaster.internal/ubuntu resolute/universe arm64 llvm-18-linker-tools arm64 1:18.1.8-20ubuntu5 [1229 kB] 100s Get:45 http://ftpmaster.internal/ubuntu resolute/universe arm64 libclang1-18 arm64 1:18.1.8-20ubuntu5 [7468 kB] 101s Get:46 http://ftpmaster.internal/ubuntu resolute/universe arm64 clang-18 arm64 1:18.1.8-20ubuntu5 [78.5 kB] 101s Get:47 http://ftpmaster.internal/ubuntu resolute/universe arm64 cython3 arm64 3.1.6+dfsg-1ubuntu1 [3180 kB] 101s Get:48 http://ftpmaster.internal/ubuntu resolute/main arm64 libdebhelper-perl all 13.28ubuntu1 [97.4 kB] 101s Get:49 http://ftpmaster.internal/ubuntu resolute/main arm64 libtool all 2.5.4-9 [169 kB] 101s Get:50 http://ftpmaster.internal/ubuntu resolute/main arm64 dh-autoreconf all 21 [12.5 kB] 101s Get:51 http://ftpmaster.internal/ubuntu resolute/main arm64 libarchive-zip-perl all 1.68-1 [90.2 kB] 101s Get:52 http://ftpmaster.internal/ubuntu resolute/main arm64 libfile-stripnondeterminism-perl all 1.15.0-1build1 [20.6 kB] 101s Get:53 http://ftpmaster.internal/ubuntu resolute/main arm64 dh-strip-nondeterminism all 1.15.0-1build1 [5110 B] 101s Get:54 http://ftpmaster.internal/ubuntu resolute/main arm64 debugedit arm64 1:5.2-3 [49.1 kB] 101s Get:55 http://ftpmaster.internal/ubuntu resolute/main arm64 dwz arm64 0.16-2 [113 kB] 101s Get:56 http://ftpmaster.internal/ubuntu resolute/main arm64 gettext arm64 0.23.2-1 [998 kB] 101s Get:57 http://ftpmaster.internal/ubuntu resolute/main arm64 intltool-debian all 0.35.0+20060710.6build1 [24.1 kB] 101s Get:58 http://ftpmaster.internal/ubuntu resolute/main arm64 po-debconf all 1.0.22 [215 kB] 101s Get:59 http://ftpmaster.internal/ubuntu resolute/main arm64 debhelper all 13.28ubuntu1 [916 kB] 101s Get:60 http://ftpmaster.internal/ubuntu resolute/universe arm64 dh-python all 7.20251231 [122 kB] 101s Get:61 http://ftpmaster.internal/ubuntu resolute/main arm64 libexpat1-dev arm64 2.7.3-1 [131 kB] 101s Get:62 http://ftpmaster.internal/ubuntu resolute/universe arm64 libhwloc15 arm64 2.12.2-1 [169 kB] 101s Get:63 http://ftpmaster.internal/ubuntu resolute/universe arm64 libllvmspirvlib18.1 arm64 18.1.19-1 [820 kB] 101s Get:64 http://ftpmaster.internal/ubuntu resolute/universe arm64 libpocl2-common all 6.0-7 [83.0 kB] 101s Get:65 http://ftpmaster.internal/ubuntu resolute/universe arm64 llvm-spirv-18 arm64 18.1.19-1 [538 kB] 101s Get:66 http://ftpmaster.internal/ubuntu resolute/universe arm64 libpocl2t64 arm64 6.0-7 [2180 kB] 101s Get:67 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14 arm64 3.14.2-1 [2593 kB] 101s Get:68 http://ftpmaster.internal/ubuntu resolute/main arm64 zlib1g-dev arm64 1:1.3.dfsg+really1.3.1-1ubuntu2 [899 kB] 101s Get:69 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-dev arm64 3.14.2-1 [5984 kB] 101s Get:70 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libpython3-dev arm64 3.14.2-1 [11.2 kB] 101s Get:71 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.13-dev arm64 3.13.11-1 [5810 kB] 101s Get:72 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libpython3-all-dev arm64 3.14.2-1 [916 B] 101s Get:73 http://ftpmaster.internal/ubuntu resolute/universe arm64 pybuild-plugin-autopkgtest all 7.20251231 [1748 B] 101s Get:74 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-all arm64 3.14.2-1 [888 B] 101s Get:75 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14-dev arm64 3.14.2-1 [510 kB] 101s Get:76 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-dev arm64 3.14.2-1 [26.6 kB] 101s Get:77 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.13-dev arm64 3.13.11-1 [508 kB] 101s Get:78 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-all-dev arm64 3.14.2-1 [912 B] 101s Get:79 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-mako all 1.3.10-3build1 [63.9 kB] 101s Get:80 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-platformdirs all 4.5.1-1 [17.1 kB] 101s Get:81 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-decorator all 5.2.1-2 [28.1 kB] 101s Get:82 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytools all 2025.1.2-1 [69.9 kB] 101s Get:83 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-compyle all 0.8.1-11 [91.6 kB] 101s Get:84 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniconfig all 2.1.0-2 [6962 B] 101s Get:85 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pluggy all 1.6.0-2 [21.1 kB] 101s Get:86 http://ftpmaster.internal/ubuntu resolute/main arm64 ocl-icd-libopencl1 arm64 2.3.4-1 [41.1 kB] 101s Get:87 http://ftpmaster.internal/ubuntu resolute/universe arm64 pocl-opencl-icd arm64 6.0-7 [7172 B] 101s Get:88 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pyopencl arm64 2025.1-2 [475 kB] 101s Get:89 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytest all 9.0.2-2 [277 kB] 102s Fetched 154 MB in 4s (40.5 MB/s) 102s Selecting previously unselected package python3.13-minimal. 102s (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 ... 135970 files and directories currently installed.) 102s Preparing to unpack .../00-python3.13-minimal_3.13.11-1_arm64.deb ... 102s Unpacking python3.13-minimal (3.13.11-1) ... 102s Selecting previously unselected package python3-numpy-dev:arm64. 102s Preparing to unpack .../01-python3-numpy-dev_1%3a2.3.5+ds-3_arm64.deb ... 102s Unpacking python3-numpy-dev:arm64 (1:2.3.5+ds-3) ... 102s Selecting previously unselected package libblas3:arm64. 102s Preparing to unpack .../02-libblas3_3.12.1-7ubuntu1_arm64.deb ... 102s Unpacking libblas3:arm64 (3.12.1-7ubuntu1) ... 102s Selecting previously unselected package libgfortran5:arm64. 102s Preparing to unpack .../03-libgfortran5_15.2.0-11ubuntu1_arm64.deb ... 102s Unpacking libgfortran5:arm64 (15.2.0-11ubuntu1) ... 102s Selecting previously unselected package liblapack3:arm64. 102s Preparing to unpack .../04-liblapack3_3.12.1-7ubuntu1_arm64.deb ... 102s Unpacking liblapack3:arm64 (3.12.1-7ubuntu1) ... 102s Selecting previously unselected package python3-numpy. 102s Preparing to unpack .../05-python3-numpy_1%3a2.3.5+ds-3_arm64.deb ... 102s Unpacking python3-numpy (1:2.3.5+ds-3) ... 103s Selecting previously unselected package python3.13. 103s Preparing to unpack .../06-python3.13_3.13.11-1_arm64.deb ... 103s Unpacking python3.13 (3.13.11-1) ... 103s Selecting previously unselected package m4. 103s Preparing to unpack .../07-m4_1.4.20-2_arm64.deb ... 103s Unpacking m4 (1.4.20-2) ... 103s Selecting previously unselected package autoconf. 103s Preparing to unpack .../08-autoconf_2.72-3.1ubuntu1_all.deb ... 103s Unpacking autoconf (2.72-3.1ubuntu1) ... 103s Selecting previously unselected package autotools-dev. 103s Preparing to unpack .../09-autotools-dev_20240727.1_all.deb ... 103s Unpacking autotools-dev (20240727.1) ... 103s Selecting previously unselected package automake. 103s Preparing to unpack .../10-automake_1%3a1.18.1-3build1_all.deb ... 103s Unpacking automake (1:1.18.1-3build1) ... 103s Selecting previously unselected package autopoint. 103s Preparing to unpack .../11-autopoint_0.23.2-1_all.deb ... 103s Unpacking autopoint (0.23.2-1) ... 103s Selecting previously unselected package libisl23:arm64. 103s Preparing to unpack .../12-libisl23_0.27-1build1_arm64.deb ... 103s Unpacking libisl23:arm64 (0.27-1build1) ... 103s Selecting previously unselected package libmpc3:arm64. 103s Preparing to unpack .../13-libmpc3_1.3.1-2_arm64.deb ... 103s Unpacking libmpc3:arm64 (1.3.1-2) ... 103s Selecting previously unselected package cpp-15-aarch64-linux-gnu. 103s Preparing to unpack .../14-cpp-15-aarch64-linux-gnu_15.2.0-11ubuntu1_arm64.deb ... 103s Unpacking cpp-15-aarch64-linux-gnu (15.2.0-11ubuntu1) ... 103s Selecting previously unselected package cpp-15. 103s Preparing to unpack .../15-cpp-15_15.2.0-11ubuntu1_arm64.deb ... 103s Unpacking cpp-15 (15.2.0-11ubuntu1) ... 103s Selecting previously unselected package cpp-aarch64-linux-gnu. 103s Preparing to unpack .../16-cpp-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 103s Unpacking cpp-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 103s Selecting previously unselected package cpp. 104s Preparing to unpack .../17-cpp_4%3a15.2.0-4ubuntu1_arm64.deb ... 104s Unpacking cpp (4:15.2.0-4ubuntu1) ... 104s Selecting previously unselected package libcc1-0:arm64. 104s Preparing to unpack .../18-libcc1-0_15.2.0-11ubuntu1_arm64.deb ... 104s Unpacking libcc1-0:arm64 (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package libgomp1:arm64. 104s Preparing to unpack .../19-libgomp1_15.2.0-11ubuntu1_arm64.deb ... 104s Unpacking libgomp1:arm64 (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package libitm1:arm64. 104s Preparing to unpack .../20-libitm1_15.2.0-11ubuntu1_arm64.deb ... 104s Unpacking libitm1:arm64 (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package libasan8:arm64. 104s Preparing to unpack .../21-libasan8_15.2.0-11ubuntu1_arm64.deb ... 104s Unpacking libasan8:arm64 (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package liblsan0:arm64. 104s Preparing to unpack .../22-liblsan0_15.2.0-11ubuntu1_arm64.deb ... 104s Unpacking liblsan0:arm64 (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package libtsan2:arm64. 104s Preparing to unpack .../23-libtsan2_15.2.0-11ubuntu1_arm64.deb ... 104s Unpacking libtsan2:arm64 (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package libubsan1:arm64. 104s Preparing to unpack .../24-libubsan1_15.2.0-11ubuntu1_arm64.deb ... 104s Unpacking libubsan1:arm64 (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package libhwasan0:arm64. 105s Preparing to unpack .../25-libhwasan0_15.2.0-11ubuntu1_arm64.deb ... 105s Unpacking libhwasan0:arm64 (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package libgcc-15-dev:arm64. 105s Preparing to unpack .../26-libgcc-15-dev_15.2.0-11ubuntu1_arm64.deb ... 105s Unpacking libgcc-15-dev:arm64 (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package gcc-15-aarch64-linux-gnu. 105s Preparing to unpack .../27-gcc-15-aarch64-linux-gnu_15.2.0-11ubuntu1_arm64.deb ... 105s Unpacking gcc-15-aarch64-linux-gnu (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package gcc-15. 105s Preparing to unpack .../28-gcc-15_15.2.0-11ubuntu1_arm64.deb ... 105s Unpacking gcc-15 (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package gcc-aarch64-linux-gnu. 105s Preparing to unpack .../29-gcc-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 105s Unpacking gcc-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 105s Selecting previously unselected package gcc. 105s Preparing to unpack .../30-gcc_4%3a15.2.0-4ubuntu1_arm64.deb ... 105s Unpacking gcc (4:15.2.0-4ubuntu1) ... 105s Selecting previously unselected package libstdc++-15-dev:arm64. 105s Preparing to unpack .../31-libstdc++-15-dev_15.2.0-11ubuntu1_arm64.deb ... 105s Unpacking libstdc++-15-dev:arm64 (15.2.0-11ubuntu1) ... 106s Selecting previously unselected package g++-15-aarch64-linux-gnu. 106s Preparing to unpack .../32-g++-15-aarch64-linux-gnu_15.2.0-11ubuntu1_arm64.deb ... 106s Unpacking g++-15-aarch64-linux-gnu (15.2.0-11ubuntu1) ... 106s Selecting previously unselected package g++-15. 106s Preparing to unpack .../33-g++-15_15.2.0-11ubuntu1_arm64.deb ... 106s Unpacking g++-15 (15.2.0-11ubuntu1) ... 106s Selecting previously unselected package g++-aarch64-linux-gnu. 106s Preparing to unpack .../34-g++-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 106s Unpacking g++-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 106s Selecting previously unselected package g++. 106s Preparing to unpack .../35-g++_4%3a15.2.0-4ubuntu1_arm64.deb ... 106s Unpacking g++ (4:15.2.0-4ubuntu1) ... 106s Selecting previously unselected package build-essential. 106s Preparing to unpack .../36-build-essential_12.12ubuntu2_arm64.deb ... 106s Unpacking build-essential (12.12ubuntu2) ... 106s Selecting previously unselected package libllvm18:arm64. 106s Preparing to unpack .../37-libllvm18_1%3a18.1.8-20ubuntu5_arm64.deb ... 106s Unpacking libllvm18:arm64 (1:18.1.8-20ubuntu5) ... 107s Selecting previously unselected package libclang-cpp18. 107s Preparing to unpack .../38-libclang-cpp18_1%3a18.1.8-20ubuntu5_arm64.deb ... 107s Unpacking libclang-cpp18 (1:18.1.8-20ubuntu5) ... 107s Selecting previously unselected package libgc1:arm64. 107s Preparing to unpack .../39-libgc1_1%3a8.2.10-1_arm64.deb ... 107s Unpacking libgc1:arm64 (1:8.2.10-1) ... 107s Selecting previously unselected package libobjc4:arm64. 107s Preparing to unpack .../40-libobjc4_15.2.0-11ubuntu1_arm64.deb ... 107s Unpacking libobjc4:arm64 (15.2.0-11ubuntu1) ... 107s Selecting previously unselected package libobjc-15-dev:arm64. 107s Preparing to unpack .../41-libobjc-15-dev_15.2.0-11ubuntu1_arm64.deb ... 107s Unpacking libobjc-15-dev:arm64 (15.2.0-11ubuntu1) ... 107s Selecting previously unselected package libclang-common-18-dev:arm64. 107s Preparing to unpack .../42-libclang-common-18-dev_1%3a18.1.8-20ubuntu5_arm64.deb ... 107s Unpacking libclang-common-18-dev:arm64 (1:18.1.8-20ubuntu5) ... 108s Selecting previously unselected package llvm-18-linker-tools. 108s Preparing to unpack .../43-llvm-18-linker-tools_1%3a18.1.8-20ubuntu5_arm64.deb ... 108s Unpacking llvm-18-linker-tools (1:18.1.8-20ubuntu5) ... 108s Selecting previously unselected package libclang1-18. 108s Preparing to unpack .../44-libclang1-18_1%3a18.1.8-20ubuntu5_arm64.deb ... 108s Unpacking libclang1-18 (1:18.1.8-20ubuntu5) ... 108s Selecting previously unselected package clang-18. 108s Preparing to unpack .../45-clang-18_1%3a18.1.8-20ubuntu5_arm64.deb ... 108s Unpacking clang-18 (1:18.1.8-20ubuntu5) ... 108s Selecting previously unselected package cython3. 108s Preparing to unpack .../46-cython3_3.1.6+dfsg-1ubuntu1_arm64.deb ... 108s Unpacking cython3 (3.1.6+dfsg-1ubuntu1) ... 108s Selecting previously unselected package libdebhelper-perl. 108s Preparing to unpack .../47-libdebhelper-perl_13.28ubuntu1_all.deb ... 108s Unpacking libdebhelper-perl (13.28ubuntu1) ... 108s Selecting previously unselected package libtool. 108s Preparing to unpack .../48-libtool_2.5.4-9_all.deb ... 108s Unpacking libtool (2.5.4-9) ... 108s Selecting previously unselected package dh-autoreconf. 108s Preparing to unpack .../49-dh-autoreconf_21_all.deb ... 108s Unpacking dh-autoreconf (21) ... 108s Selecting previously unselected package libarchive-zip-perl. 108s Preparing to unpack .../50-libarchive-zip-perl_1.68-1_all.deb ... 108s Unpacking libarchive-zip-perl (1.68-1) ... 108s Selecting previously unselected package libfile-stripnondeterminism-perl. 108s Preparing to unpack .../51-libfile-stripnondeterminism-perl_1.15.0-1build1_all.deb ... 108s Unpacking libfile-stripnondeterminism-perl (1.15.0-1build1) ... 108s Selecting previously unselected package dh-strip-nondeterminism. 108s Preparing to unpack .../52-dh-strip-nondeterminism_1.15.0-1build1_all.deb ... 108s Unpacking dh-strip-nondeterminism (1.15.0-1build1) ... 108s Selecting previously unselected package debugedit. 108s Preparing to unpack .../53-debugedit_1%3a5.2-3_arm64.deb ... 108s Unpacking debugedit (1:5.2-3) ... 109s Selecting previously unselected package dwz. 109s Preparing to unpack .../54-dwz_0.16-2_arm64.deb ... 109s Unpacking dwz (0.16-2) ... 109s Selecting previously unselected package gettext. 109s Preparing to unpack .../55-gettext_0.23.2-1_arm64.deb ... 109s Unpacking gettext (0.23.2-1) ... 109s Selecting previously unselected package intltool-debian. 109s Preparing to unpack .../56-intltool-debian_0.35.0+20060710.6build1_all.deb ... 109s Unpacking intltool-debian (0.35.0+20060710.6build1) ... 109s Selecting previously unselected package po-debconf. 109s Preparing to unpack .../57-po-debconf_1.0.22_all.deb ... 109s Unpacking po-debconf (1.0.22) ... 109s Selecting previously unselected package debhelper. 109s Preparing to unpack .../58-debhelper_13.28ubuntu1_all.deb ... 109s Unpacking debhelper (13.28ubuntu1) ... 109s Selecting previously unselected package dh-python. 109s Preparing to unpack .../59-dh-python_7.20251231_all.deb ... 109s Unpacking dh-python (7.20251231) ... 109s Selecting previously unselected package libexpat1-dev:arm64. 109s Preparing to unpack .../60-libexpat1-dev_2.7.3-1_arm64.deb ... 109s Unpacking libexpat1-dev:arm64 (2.7.3-1) ... 109s Selecting previously unselected package libhwloc15:arm64. 109s Preparing to unpack .../61-libhwloc15_2.12.2-1_arm64.deb ... 109s Unpacking libhwloc15:arm64 (2.12.2-1) ... 109s Selecting previously unselected package libllvmspirvlib18.1:arm64. 109s Preparing to unpack .../62-libllvmspirvlib18.1_18.1.19-1_arm64.deb ... 109s Unpacking libllvmspirvlib18.1:arm64 (18.1.19-1) ... 109s Selecting previously unselected package libpocl2-common. 109s Preparing to unpack .../63-libpocl2-common_6.0-7_all.deb ... 109s Unpacking libpocl2-common (6.0-7) ... 109s Selecting previously unselected package llvm-spirv-18. 109s Preparing to unpack .../64-llvm-spirv-18_18.1.19-1_arm64.deb ... 109s Unpacking llvm-spirv-18 (18.1.19-1) ... 109s Selecting previously unselected package libpocl2t64:arm64. 109s Preparing to unpack .../65-libpocl2t64_6.0-7_arm64.deb ... 109s Unpacking libpocl2t64:arm64 (6.0-7) ... 109s Selecting previously unselected package libpython3.14:arm64. 109s Preparing to unpack .../66-libpython3.14_3.14.2-1_arm64.deb ... 109s Unpacking libpython3.14:arm64 (3.14.2-1) ... 109s Selecting previously unselected package zlib1g-dev:arm64. 109s Preparing to unpack .../67-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu2_arm64.deb ... 109s Unpacking zlib1g-dev:arm64 (1:1.3.dfsg+really1.3.1-1ubuntu2) ... 110s Selecting previously unselected package libpython3.14-dev:arm64. 110s Preparing to unpack .../68-libpython3.14-dev_3.14.2-1_arm64.deb ... 110s Unpacking libpython3.14-dev:arm64 (3.14.2-1) ... 110s Selecting previously unselected package libpython3-dev:arm64. 110s Preparing to unpack .../69-libpython3-dev_3.14.2-1_arm64.deb ... 110s Unpacking libpython3-dev:arm64 (3.14.2-1) ... 110s Selecting previously unselected package libpython3.13-dev:arm64. 110s Preparing to unpack .../70-libpython3.13-dev_3.13.11-1_arm64.deb ... 110s Unpacking libpython3.13-dev:arm64 (3.13.11-1) ... 110s Selecting previously unselected package libpython3-all-dev:arm64. 110s Preparing to unpack .../71-libpython3-all-dev_3.14.2-1_arm64.deb ... 110s Unpacking libpython3-all-dev:arm64 (3.14.2-1) ... 110s Selecting previously unselected package pybuild-plugin-autopkgtest. 110s Preparing to unpack .../72-pybuild-plugin-autopkgtest_7.20251231_all.deb ... 110s Unpacking pybuild-plugin-autopkgtest (7.20251231) ... 110s Selecting previously unselected package python3-all. 110s Preparing to unpack .../73-python3-all_3.14.2-1_arm64.deb ... 110s Unpacking python3-all (3.14.2-1) ... 110s Selecting previously unselected package python3.14-dev. 110s Preparing to unpack .../74-python3.14-dev_3.14.2-1_arm64.deb ... 110s Unpacking python3.14-dev (3.14.2-1) ... 110s Selecting previously unselected package python3-dev. 110s Preparing to unpack .../75-python3-dev_3.14.2-1_arm64.deb ... 110s Unpacking python3-dev (3.14.2-1) ... 110s Selecting previously unselected package python3.13-dev. 110s Preparing to unpack .../76-python3.13-dev_3.13.11-1_arm64.deb ... 110s Unpacking python3.13-dev (3.13.11-1) ... 110s Selecting previously unselected package python3-all-dev. 110s Preparing to unpack .../77-python3-all-dev_3.14.2-1_arm64.deb ... 110s Unpacking python3-all-dev (3.14.2-1) ... 110s Selecting previously unselected package python3-mako. 110s Preparing to unpack .../78-python3-mako_1.3.10-3build1_all.deb ... 110s Unpacking python3-mako (1.3.10-3build1) ... 110s Selecting previously unselected package python3-platformdirs. 111s Preparing to unpack .../79-python3-platformdirs_4.5.1-1_all.deb ... 111s Unpacking python3-platformdirs (4.5.1-1) ... 111s Selecting previously unselected package python3-decorator. 111s Preparing to unpack .../80-python3-decorator_5.2.1-2_all.deb ... 111s Unpacking python3-decorator (5.2.1-2) ... 111s Selecting previously unselected package python3-pytools. 111s Preparing to unpack .../81-python3-pytools_2025.1.2-1_all.deb ... 111s Unpacking python3-pytools (2025.1.2-1) ... 111s Selecting previously unselected package python3-compyle. 111s Preparing to unpack .../82-python3-compyle_0.8.1-11_all.deb ... 111s Unpacking python3-compyle (0.8.1-11) ... 111s Selecting previously unselected package python3-iniconfig. 111s Preparing to unpack .../83-python3-iniconfig_2.1.0-2_all.deb ... 111s Unpacking python3-iniconfig (2.1.0-2) ... 111s Selecting previously unselected package python3-pluggy. 111s Preparing to unpack .../84-python3-pluggy_1.6.0-2_all.deb ... 111s Unpacking python3-pluggy (1.6.0-2) ... 111s Selecting previously unselected package ocl-icd-libopencl1:arm64. 111s Preparing to unpack .../85-ocl-icd-libopencl1_2.3.4-1_arm64.deb ... 111s Unpacking ocl-icd-libopencl1:arm64 (2.3.4-1) ... 111s Selecting previously unselected package pocl-opencl-icd:arm64. 111s Preparing to unpack .../86-pocl-opencl-icd_6.0-7_arm64.deb ... 111s Unpacking pocl-opencl-icd:arm64 (6.0-7) ... 111s Selecting previously unselected package python3-pyopencl. 111s Preparing to unpack .../87-python3-pyopencl_2025.1-2_arm64.deb ... 111s Unpacking python3-pyopencl (2025.1-2) ... 111s Selecting previously unselected package python3-pytest. 111s Preparing to unpack .../88-python3-pytest_9.0.2-2_all.deb ... 111s Unpacking python3-pytest (9.0.2-2) ... 111s Setting up dh-python (7.20251231) ... 112s Setting up python3-iniconfig (2.1.0-2) ... 112s Setting up libarchive-zip-perl (1.68-1) ... 112s Setting up libdebhelper-perl (13.28ubuntu1) ... 112s Setting up m4 (1.4.20-2) ... 112s Setting up libgomp1:arm64 (15.2.0-11ubuntu1) ... 112s Setting up python3-platformdirs (4.5.1-1) ... 112s Setting up python3-decorator (5.2.1-2) ... 112s Setting up autotools-dev (20240727.1) ... 112s Setting up libblas3:arm64 (3.12.1-7ubuntu1) ... 112s update-alternatives: using /usr/lib/aarch64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/aarch64-linux-gnu/libblas.so.3 (libblas.so.3-aarch64-linux-gnu) in auto mode 112s Setting up libexpat1-dev:arm64 (2.7.3-1) ... 112s Setting up libpocl2-common (6.0-7) ... 112s Setting up libhwloc15:arm64 (2.12.2-1) ... 112s Setting up libmpc3:arm64 (1.3.1-2) ... 112s Setting up python3-numpy-dev:arm64 (1:2.3.5+ds-3) ... 112s Setting up cython3 (3.1.6+dfsg-1ubuntu1) ... 114s Setting up autopoint (0.23.2-1) ... 114s Setting up libclang-common-18-dev:arm64 (1:18.1.8-20ubuntu5) ... 114s Setting up libgc1:arm64 (1:8.2.10-1) ... 114s Setting up libgfortran5:arm64 (15.2.0-11ubuntu1) ... 114s Setting up autoconf (2.72-3.1ubuntu1) ... 114s Setting up python3-pluggy (1.6.0-2) ... 114s Setting up libubsan1:arm64 (15.2.0-11ubuntu1) ... 114s Setting up zlib1g-dev:arm64 (1:1.3.dfsg+really1.3.1-1ubuntu2) ... 114s Setting up dwz (0.16-2) ... 115s Setting up ocl-icd-libopencl1:arm64 (2.3.4-1) ... 115s Setting up libhwasan0:arm64 (15.2.0-11ubuntu1) ... 115s Setting up libasan8:arm64 (15.2.0-11ubuntu1) ... 115s Setting up libpython3.14:arm64 (3.14.2-1) ... 115s Setting up debugedit (1:5.2-3) ... 115s Setting up python3.13-minimal (3.13.11-1) ... 116s Setting up libpython3.14-dev:arm64 (3.14.2-1) ... 116s Setting up libtsan2:arm64 (15.2.0-11ubuntu1) ... 116s Setting up libisl23:arm64 (0.27-1build1) ... 116s Setting up libcc1-0:arm64 (15.2.0-11ubuntu1) ... 116s Setting up liblsan0:arm64 (15.2.0-11ubuntu1) ... 116s Setting up libitm1:arm64 (15.2.0-11ubuntu1) ... 116s Setting up python3-mako (1.3.10-3build1) ... 116s Setting up libllvm18:arm64 (1:18.1.8-20ubuntu5) ... 116s Setting up automake (1:1.18.1-3build1) ... 116s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 116s Setting up libfile-stripnondeterminism-perl (1.15.0-1build1) ... 116s Setting up libclang1-18 (1:18.1.8-20ubuntu5) ... 116s Setting up cpp-15-aarch64-linux-gnu (15.2.0-11ubuntu1) ... 116s Setting up liblapack3:arm64 (3.12.1-7ubuntu1) ... 116s update-alternatives: using /usr/lib/aarch64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/aarch64-linux-gnu/liblapack.so.3 (liblapack.so.3-aarch64-linux-gnu) in auto mode 116s Setting up gettext (0.23.2-1) ... 116s Setting up libgcc-15-dev:arm64 (15.2.0-11ubuntu1) ... 116s Setting up libpython3-dev:arm64 (3.14.2-1) ... 116s Setting up python3.14-dev (3.14.2-1) ... 116s Setting up python3.13 (3.13.11-1) ... 117s Setting up python3-pytest (9.0.2-2) ... 118s Setting up python3-all (3.14.2-1) ... 118s Setting up libobjc4:arm64 (15.2.0-11ubuntu1) ... 118s Setting up intltool-debian (0.35.0+20060710.6build1) ... 118s Setting up cpp-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 118s Setting up libstdc++-15-dev:arm64 (15.2.0-11ubuntu1) ... 118s Setting up libpython3.13-dev:arm64 (3.13.11-1) ... 118s Setting up python3-dev (3.14.2-1) ... 118s Setting up python3-numpy (1:2.3.5+ds-3) ... 122s Setting up llvm-18-linker-tools (1:18.1.8-20ubuntu5) ... 122s Setting up dh-strip-nondeterminism (1.15.0-1build1) ... 122s Setting up cpp-15 (15.2.0-11ubuntu1) ... 122s Setting up cpp (4:15.2.0-4ubuntu1) ... 122s Setting up libllvmspirvlib18.1:arm64 (18.1.19-1) ... 122s Setting up libobjc-15-dev:arm64 (15.2.0-11ubuntu1) ... 122s Setting up libclang-cpp18 (1:18.1.8-20ubuntu5) ... 122s Setting up gcc-15-aarch64-linux-gnu (15.2.0-11ubuntu1) ... 122s Setting up python3.13-dev (3.13.11-1) ... 122s Setting up po-debconf (1.0.22) ... 122s Setting up clang-18 (1:18.1.8-20ubuntu5) ... 122s Setting up gcc-15 (15.2.0-11ubuntu1) ... 122s Setting up g++-15-aarch64-linux-gnu (15.2.0-11ubuntu1) ... 122s Setting up libpython3-all-dev:arm64 (3.14.2-1) ... 122s Setting up python3-pytools (2025.1.2-1) ... 122s Setting up llvm-spirv-18 (18.1.19-1) ... 122s Setting up g++-15 (15.2.0-11ubuntu1) ... 122s Setting up python3-all-dev (3.14.2-1) ... 122s Setting up gcc-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 122s Setting up libtool (2.5.4-9) ... 122s Setting up libpocl2t64:arm64 (6.0-7) ... 122s Setting up python3-compyle (0.8.1-11) ... 123s Setting up gcc (4:15.2.0-4ubuntu1) ... 123s Setting up dh-autoreconf (21) ... 123s Setting up pocl-opencl-icd:arm64 (6.0-7) ... 123s Setting up g++-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 123s Setting up python3-pyopencl (2025.1-2) ... 123s Setting up debhelper (13.28ubuntu1) ... 123s Setting up g++ (4:15.2.0-4ubuntu1) ... 123s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 123s Setting up build-essential (12.12ubuntu2) ... 123s Setting up pybuild-plugin-autopkgtest (7.20251231) ... 123s Processing triggers for man-db (2.13.1-1) ... 124s Processing triggers for install-info (7.2-5) ... 124s Processing triggers for libc-bin (2.42-2ubuntu4) ... 124s Processing triggers for systemd (259-1ubuntu2) ... 125s autopkgtest [16:30:49]: test pybuild-autopkgtest: pybuild-autopkgtest 125s autopkgtest [16:30:49]: test pybuild-autopkgtest: [----------------------- 126s pybuild-autopkgtest 126s I: pybuild base:384: cd /tmp/autopkgtest.ruUQ6J/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.ruUQ6J/build.YR5/src/compyle/tests/test_cuda.py --ignore=/tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/tests/test_parallel.py /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/tests 127s ============================= test session starts ============================== 127s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 127s rootdir: /tmp/autopkgtest.ruUQ6J/build.YR5/src 127s configfile: pyproject.toml 127s plugins: typeguard-4.4.4 127s collected 327 items / 3 deselected / 324 selected 127s 147s ../../build.YR5/src/compyle/tests/test_array.py ..s..s..s..s..s..s..s..s [ 7%] 261s ..s..s..s..s..s..s...s.sx..s..s..s..s..s..s..s..s..s..s..s..s..s..s..s.. [ 29%] 365s s..s..s..s..s..s..s..s..s..s..ss..s......sss......sss......sss..s [ 49%] 365s ../../build.YR5/src/compyle/tests/test_ast_utils.py ....... [ 51%] 365s ../../build.YR5/src/compyle/tests/test_capture_stream.py ..... [ 53%] 365s ../../build.YR5/src/compyle/tests/test_config.py ............ [ 57%] 365s ../../build.YR5/src/compyle/tests/test_cython_generator.py ............. [ 61%] 365s .... [ 62%] 367s ../../build.YR5/src/compyle/tests/test_ext_module.py ........ [ 64%] 367s ../../build.YR5/src/compyle/tests/test_gpu_struct.py s [ 65%] 367s ../../build.YR5/src/compyle/tests/test_jit.py .......................... [ 73%] 367s [ 73%] 383s ../../build.YR5/src/compyle/tests/test_low_level.py s.s..... [ 75%] 385s ../../build.YR5/src/compyle/tests/test_profile.py ..... [ 77%] 392s ../../build.YR5/src/compyle/tests/test_template.py ..... [ 78%] 392s ../../build.YR5/src/compyle/tests/test_translator.py ................... [ 84%] 392s .................................... [ 95%] 392s ../../build.YR5/src/compyle/tests/test_transpiler.py ... [ 96%] 392s ../../build.YR5/src/compyle/tests/test_types.py ....... [ 98%] 392s ../../build.YR5/src/compyle/tests/test_utils.py .... [100%] 392s 392s =============================== warnings summary =============================== 392s compyle/tests/test_array.py: 8 warnings 392s compyle/tests/test_jit.py: 5 warnings 392s compyle/tests/test_translator.py: 93 warnings 392s /usr/lib/python3.13/ast.py:422: DeprecationWarning: visit_Num is deprecated; add visit_Constant 392s return visitor(node) 392s 392s compyle/tests/test_array.py: 4 warnings 392s compyle/tests/test_translator.py: 93 warnings 392s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/translator.py:682: DeprecationWarning: Attribute n is deprecated and will be removed in Python 3.14; use value instead 392s return str(node.n) 392s 392s compyle/tests/test_array.py: 31 warnings 392s /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. 392s lambda: self._prg.build(options_bytes, devices), 392s 392s compyle/tests/test_array.py: 5 warnings 392s compyle/tests/test_template.py: 5 warnings 392s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/template.py:52: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 392s template = body[-1].value.s 392s 392s compyle/tests/test_array.py::test_align_multiple[opencl] 392s compyle/tests/test_array.py::test_align_multiple[opencl] 392s compyle/tests/test_translator.py::test_simple_function_with_return 392s compyle/tests/test_translator.py::test_calling_method_of_known_type_in_method 392s compyle/tests/test_translator.py::test_wrapping_class 392s compyle/tests/test_translator.py::test_wrapping_class 392s compyle/tests/test_translator.py::test_wrapping_class_with_ignore_methods 392s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/translator.py:228: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead 392s isinstance(body[0].value, ast.Str): 392s 392s compyle/tests/test_array.py::test_radix_sort_by_keys 392s compyle/tests/test_array.py::test_radix_sort_by_keys 392s compyle/tests/test_array.py::test_radix_sort_by_keys 392s compyle/tests/test_array.py::test_radix_sort_by_keys 392s compyle/tests/test_jit.py::TestAnnotationHelper::test_declare_multiple_variables 392s compyle/tests/test_jit.py::TestAnnotationHelper::test_declare_multiple_variables 392s compyle/tests/test_jit.py::TestAnnotationHelper::test_no_return_value 392s compyle/tests/test_jit.py::TestAnnotationHelper::test_no_return_value 392s compyle/tests/test_jit.py::TestAnnotationHelper::test_undeclared_variable_declaration_in_for 392s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/jit.py:299: DeprecationWarning: Attribute n is deprecated and will be removed in Python 3.14; use value instead 392s return get_ctype_from_arg(node.n) 392s 392s compyle/tests/test_array.py::test_diff[int32-opencl] 392s compyle/tests/test_array.py::test_diff[float32-opencl] 392s compyle/tests/test_array.py::test_diff[float64-opencl] 392s compyle/tests/test_array.py::test_trapz[opencl] 392s compyle/tests/test_jit.py::TestAnnotationHelper::test_declare_multiple_variables 392s compyle/tests/test_jit.py::TestAnnotationHelper::test_variable_as_call_arg 392s compyle/tests/test_jit.py::TestAnnotationHelper::test_variable_as_call_arg_nonjit 392s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/jit.py:205: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead 392s if not isinstance(node.args[0], ast.Str): 392s 392s compyle/tests/test_array.py::test_diff[int32-opencl] 392s compyle/tests/test_array.py::test_diff[float32-opencl] 392s compyle/tests/test_array.py::test_diff[float64-opencl] 392s compyle/tests/test_array.py::test_trapz[opencl] 392s compyle/tests/test_jit.py::TestAnnotationHelper::test_declare_multiple_variables 392s compyle/tests/test_jit.py::TestAnnotationHelper::test_variable_as_call_arg 392s compyle/tests/test_jit.py::TestAnnotationHelper::test_variable_as_call_arg_nonjit 392s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/jit.py:207: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 392s type_str = node.args[0].s 392s 392s compyle/tests/test_array.py: 3 warnings 392s compyle/tests/test_low_level.py: 2 warnings 392s compyle/tests/test_translator.py: 14 warnings 392s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/translator.py:344: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead 392s if not isinstance(right.args[0], ast.Str): 392s 392s compyle/tests/test_array.py: 3 warnings 392s compyle/tests/test_low_level.py: 2 warnings 392s compyle/tests/test_translator.py: 14 warnings 392s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/translator.py:346: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 392s type = right.args[0].s 392s 392s compyle/tests/test_array.py::test_trapz[cython] 392s compyle/tests/test_array.py::test_trapz[opencl] 392s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/tests/test_array.py:452: DeprecationWarning: `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`. 392s assert(array.trapz(y) == np.trapz(yn)) 392s 392s compyle/tests/test_array.py::test_trapz[cython] 392s compyle/tests/test_array.py::test_trapz[opencl] 392s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/tests/test_array.py:453: DeprecationWarning: `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`. 392s assert(array.trapz(y, x,) == np.trapz(yn, xn)) 392s 392s compyle/tests/test_array.py::test_trapz[cython] 392s compyle/tests/test_array.py::test_trapz[opencl] 392s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/tests/test_array.py:454: DeprecationWarning: `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`. 392s assert(array.trapz(y, dx=3) == np.trapz(yn, dx=3)) 392s 392s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_function_with_annotation 392s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_declare 392s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_declare 392s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_matrix 392s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_matrix 392s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_python3_annotation 392s compyle/tests/test_low_level.py::TestCython::test_cython_code_with_return_and_nested_call 392s compyle/tests/test_low_level.py::TestCython::test_cython_code_with_return_and_nested_call 392s compyle/tests/test_low_level.py::TestCython::test_cython_with_externs 392s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/cython_generator.py:129: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead 392s if not isinstance(arg0, ast.Str): 392s 392s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_function_with_annotation 392s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_declare 392s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_declare 392s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_matrix 392s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_matrix 392s compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_python3_annotation 392s compyle/tests/test_low_level.py::TestCython::test_cython_code_with_return_and_nested_call 392s compyle/tests/test_low_level.py::TestCython::test_cython_code_with_return_and_nested_call 392s compyle/tests/test_low_level.py::TestCython::test_cython_with_externs 392s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/cython_generator.py:133: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 392s return get_declare_info(arg0.s) 392s 392s compyle/tests/test_ext_module.py::TestExtModule::test_that_multiple_writes_do_not_occur_for_same_source 392s compyle/tests/test_ext_module.py::TestExtModule::test_that_multiple_writes_do_not_occur_for_same_source 392s compyle/tests/test_ext_module.py::TestExtModule::test_that_multiple_writes_do_not_occur_for_same_source 392s compyle/tests/test_ext_module.py::TestExtModule::test_that_multiple_writes_do_not_occur_for_same_source 393s compyle/tests/test_ext_module.py::TestExtModule::test_that_multiple_writes_do_not_occur_for_same_source 393s /usr/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=3175) is multi-threaded, use of fork() may lead to deadlocks in the child. 393s self.pid = os.fork() 393s 393s compyle/tests/test_jit.py::TestAnnotationHelper::test_cast_return_type 393s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/jit.py:211: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead 393s if not isinstance(node.args[1], ast.Str): 393s 393s compyle/tests/test_jit.py::TestAnnotationHelper::test_cast_return_type 393s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/jit.py:213: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 393s return node.args[1].s 393s 393s compyle/tests/test_jit.py::TestAnnotationHelper::test_non_jit_call_as_call_arg 393s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/jit.py:202: UserWarning: 393s In code in line 5: 393s 393s return g(sin(a)) 393s ^ 393s 393s 393s Function called is not marked by the annotate decorator. Argument 393s type defaulting to 'double'. If the type is not 'double', store 393s the value in a variable of appropriate type and use the variable 393s 393s warnings.warn(msg) 393s 393s compyle/tests/test_jit.py::TestAnnotationHelper::test_non_jit_call_in_return 393s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/jit.py:202: UserWarning: 393s In code in line 5: 393s 393s return sin(a) 393s ^ 393s 393s 393s Function called is not marked by the annotate decorator. Argument 393s type defaulting to 'double'. If the type is not 'double', store 393s the value in a variable of appropriate type and use the variable 393s 393s warnings.warn(msg) 393s 393s compyle/tests/test_template.py::test_simple_template 393s compyle/tests/test_template.py::test_simple_template 393s compyle/tests/test_template.py::test_that_source_code_is_available 393s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/template.py:53: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 393s docstring = body[0].value.s if len(body) == 2 else '' 393s 393s compyle/tests/test_translator.py::test_calling_printf_with_string 393s compyle/tests/test_translator.py::test_calling_printf_with_string 393s /usr/lib/python3.13/ast.py:422: DeprecationWarning: visit_Str is deprecated; add visit_Constant 393s return visitor(node) 393s 393s compyle/tests/test_translator.py::test_calling_printf_with_string 393s compyle/tests/test_translator.py::test_calling_printf_with_string 393s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/translator.py:700: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 393s return r'"%s"' % node.s 393s 393s compyle/tests/test_translator.py::test_bool_true_false_and_none 393s compyle/tests/test_translator.py::test_bool_true_false_and_none 393s compyle/tests/test_translator.py::test_bool_true_false_and_none 393s compyle/tests/test_translator.py::test_bool_true_false_and_none 393s /usr/lib/python3.13/ast.py:422: DeprecationWarning: visit_NameConstant is deprecated; add visit_Constant 393s return visitor(node) 393s 393s compyle/tests/test_translator.py::test_cast_works 393s compyle/tests/test_translator.py::test_cast_works 393s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/translator.py:388: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead 393s return '(%s) (%s)' % (node.args[1].s, self.visit(node.args[0])) 393s 393s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 393s = 266 passed, 57 skipped, 3 deselected, 1 xfailed, 358 warnings in 265.49s (0:04:25) = 393s I: pybuild base:384: cd /tmp/autopkgtest.ruUQ6J/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.ruUQ6J/build.YR5/src/compyle/tests/test_cuda.py --ignore=/tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/tests/test_parallel.py /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/tests 395s ============================= test session starts ============================== 395s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 395s rootdir: /tmp/autopkgtest.ruUQ6J/build.YR5/src 395s configfile: pyproject.toml 395s plugins: typeguard-4.4.4 395s collected 327 items / 3 deselected / 324 selected 395s 411s ../../build.YR5/src/compyle/tests/test_array.py ..s..s..s..s..s..s..s.Fs [ 7%] 482s ..sFFs..s..s..sF.sFF.s.sx..s..s..s.Fs.Fs.Fs.Fs..s..s..s..s..s..s..s..s.. [ 29%] 583s s..s..s..s..s..s..s..s..s..s..ss..s......sss......sss...FFFsss..s [ 49%] 583s ../../build.YR5/src/compyle/tests/test_ast_utils.py ....... [ 51%] 584s ../../build.YR5/src/compyle/tests/test_capture_stream.py ..... [ 53%] 584s ../../build.YR5/src/compyle/tests/test_config.py ............ [ 57%] 584s ../../build.YR5/src/compyle/tests/test_cython_generator.py ......F.F.F.F [ 61%] 584s .... [ 62%] 586s ../../build.YR5/src/compyle/tests/test_ext_module.py ........ [ 64%] 586s ../../build.YR5/src/compyle/tests/test_gpu_struct.py s [ 65%] 587s ../../build.YR5/src/compyle/tests/test_jit.py ........F.F............FF. [ 73%] 587s [ 73%] 589s ../../build.YR5/src/compyle/tests/test_low_level.py sFsFFF.. [ 75%] 589s ../../build.YR5/src/compyle/tests/test_profile.py ..... [ 77%] 589s ../../build.YR5/src/compyle/tests/test_template.py FFFF. [ 78%] 590s ../../build.YR5/src/compyle/tests/test_translator.py FFFFFFFF.FFF.F...FF [ 84%] 591s FF..FFFFFFFFFF...FFFFF...FF...FF...F [ 95%] 591s ../../build.YR5/src/compyle/tests/test_transpiler.py ... [ 96%] 591s ../../build.YR5/src/compyle/tests/test_types.py ....... [ 98%] 591s ../../build.YR5/src/compyle/tests/test_utils.py .... [100%] 591s 591s =================================== FAILURES =================================== 591s _____________________________ test_remove[opencl] ______________________________ 591s 591s backend = 'opencl' 591s 591s @check_all_backends 591s def test_remove(backend): 591s check_import(backend) 591s 591s # Given 591s dev_array = Array(np.int32, backend=backend) 591s orig_array = array.arange(0, 16, 1, dtype=np.int32, 591s backend=backend) 591s dev_array.set_data(orig_array) 591s indices = array.arange(0, 8, 1, dtype=np.int32, backend=backend) 591s 591s # When 591s > dev_array.remove(indices) 591s 591s ../../build.YR5/src/compyle/tests/test_array.py:157: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/profile.py:72: in wrapper 591s return method(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/array.py:1154: in remove 591s fill_if_remove_knl(indices, if_remove) 591s ../../build.YR5/src/compyle/parallel.py:573: in __call__ 591s self.elementwise(*args, **kwargs) 591s ../../build.YR5/src/compyle/profile.py:72: in wrapper 591s return method(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:359: in __call__ 591s c_func = self._generate_kernel(*args) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:29: in wrapper 591s setattr(f, 'cached_kernel', {key_val: method(*args)}) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:347: in _generate_kernel 591s return self._generate(declarations=declarations) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/parallel.py:474: in _generate 591s all_source = knl.get_kernel(False)[0].program.source 591s ^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pytools/__init__.py:758: in wrapper 591s result = function(obj, *args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:244: in get_kernel 591s knl, arg_descrs = get_elwise_kernel_and_types( 591s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:169: in get_elwise_kernel_and_types 591s prg = get_elwise_program( 591s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:116: in get_elwise_program 591s return cl.Program(context, source).build(options) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pyopencl/__init__.py:518: in build 591s self._build_and_catch_errors( 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s build_func = . at 0xf863ff460bf0> 591s options_bytes = b'-I /usr/lib/python3/dist-packages/pyopencl/cl', source = None 591s 591s def _build_and_catch_errors(self, build_func, options_bytes, source=None): 591s try: 591s return build_func() 591s except RuntimeError as e: 591s msg = str(e) 591s if options_bytes: 591s msg = msg + "\n(options: %s)" % options_bytes.decode("utf-8") 591s 591s if source is not None: 591s from tempfile import NamedTemporaryFile 591s srcfile = NamedTemporaryFile(mode="wt", delete=False, suffix=".cl") 591s try: 591s srcfile.write(source) 591s finally: 591s srcfile.close() 591s 591s msg = msg + "\n(source saved as %s)" % srcfile.name 591s 591s code = e.code 591s routine = e.routine 591s 591s err = RuntimeError( 591s _cl._ErrorRecord( 591s msg=msg, 591s code=code, 591s routine=routine)) 591s 591s # Python 3.2 outputs the whole list of currently active exceptions 591s # This serves to remove one (redundant) level from that nesting. 591s > raise err 591s E pyopencl._cl.RuntimeError: clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE 591s E 591s E Build on : 591s E 591s E error: /tmp/autopkgtest.ruUQ6J/autopkgtest_tmp/.cache/pocl/kcache/tempfile_FogvLt.cl:74:29: use of undeclared identifier 'None' 591s E warning: /tmp/autopkgtest.ruUQ6J/autopkgtest_tmp/.cache/pocl/kcache/tempfile_FogvLt.cl:62:9: 'max' macro redefined 591s E warning: /tmp/autopkgtest.ruUQ6J/autopkgtest_tmp/.cache/pocl/kcache/tempfile_FogvLt.cl:62:9: 'max' macro redefined 591s E Device cpu--0xd0c failed to build the program 591s E 591s E (options: -I /usr/lib/python3/dist-packages/pyopencl/cl) 591s 591s /usr/lib/python3/dist-packages/pyopencl/__init__.py:574: RuntimeError 591s ----------------------------- Captured stderr call ----------------------------- 591s 1 warning generated. 591s 2 warnings and 1 error generated. 591s _________________________ test_align_multiple[cython] __________________________ 591s 591s args = ([, ], ) 591s kwargs = {'backend': 'cython'}, key = ('guintp', 'gfloatp', 'cython', False) 591s 591s def wrapper(*args, **kwargs): 591s key = key_func(*args, **kwargs) 591s try: 591s > return func._memoize_dic[key] 591s ^^^^^^^^^^^^^^^^^ 591s E AttributeError: 'function' object has no attribute '_memoize_dic' 591s 591s /usr/lib/python3/dist-packages/pytools/__init__.py:684: AttributeError 591s 591s During handling of the above exception, another exception occurred: 591s 591s backend = 'cython' 591s 591s @check_all_backends 591s def test_align_multiple(backend): 591s check_import(backend) 591s 591s # Given 591s dev_array_a = Array(np.uint32, backend=backend) 591s dev_array_b = Array(np.float32, backend=backend) 591s orig_array_a = array.arange(0, 1024, 1, dtype=np.uint32, backend=backend) 591s orig_array_b = array.arange( 591s 1024, 2048, 1, dtype=np.float32, backend=backend) 591s dev_array_a.set_data(orig_array_a) 591s dev_array_b.set_data(orig_array_b) 591s 591s indices = array.arange(1023, -1, -1, dtype=np.int64, backend=backend) 591s 591s # When 591s > dev_array_a, dev_array_b = array.align([dev_array_a, dev_array_b], 591s indices) 591s 591s ../../build.YR5/src/compyle/tests/test_array.py:196: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/array.py:825: in align 591s align_multiple_elwise = get_align_kernel(ary_list, order, backend=backend) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pytools/__init__.py:687: in wrapper 591s result = func(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/array.py:806: in get_align_kernel 591s align_multiple_elwise = parallel.Elementwise(align_multiple_knl.function, 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:24: in function 591s self._function = self._make_function() 591s ^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:28: in _make_function 591s src, annotations = self._get_code() 591s ^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 591s def _get_code(self): 591s m = ast.parse(dedent(inspect.getsource(self.template))) 591s argspec = getfullargspec(self.template) 591s args = argspec.args 591s if args[0] == 'self': 591s args = args[1:] 591s extra_args, extra_annotations = self.extra_args() 591s args += extra_args 591s arg_string = ', '.join(args) 591s body = m.body[0].body 591s > template = body[-1].value.s 591s ^^^^^^^^^^^^^^^^ 591s E AttributeError: 'Constant' object has no attribute 's' 591s 591s ../../build.YR5/src/compyle/template.py:52: AttributeError 591s _________________________ test_align_multiple[opencl] __________________________ 591s 591s args = ([, ], ) 591s kwargs = {'backend': 'opencl'}, key = ('guintp', 'gfloatp', 'opencl', False) 591s 591s def wrapper(*args, **kwargs): 591s key = key_func(*args, **kwargs) 591s try: 591s > return func._memoize_dic[key] 591s ^^^^^^^^^^^^^^^^^ 591s E AttributeError: 'function' object has no attribute '_memoize_dic' 591s 591s /usr/lib/python3/dist-packages/pytools/__init__.py:684: AttributeError 591s 591s During handling of the above exception, another exception occurred: 591s 591s backend = 'opencl' 591s 591s @check_all_backends 591s def test_align_multiple(backend): 591s check_import(backend) 591s 591s # Given 591s dev_array_a = Array(np.uint32, backend=backend) 591s dev_array_b = Array(np.float32, backend=backend) 591s orig_array_a = array.arange(0, 1024, 1, dtype=np.uint32, backend=backend) 591s orig_array_b = array.arange( 591s 1024, 2048, 1, dtype=np.float32, backend=backend) 591s dev_array_a.set_data(orig_array_a) 591s dev_array_b.set_data(orig_array_b) 591s 591s indices = array.arange(1023, -1, -1, dtype=np.int64, backend=backend) 591s 591s # When 591s > dev_array_a, dev_array_b = array.align([dev_array_a, dev_array_b], 591s indices) 591s 591s ../../build.YR5/src/compyle/tests/test_array.py:196: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/array.py:825: in align 591s align_multiple_elwise = get_align_kernel(ary_list, order, backend=backend) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pytools/__init__.py:687: in wrapper 591s result = func(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/array.py:806: in get_align_kernel 591s align_multiple_elwise = parallel.Elementwise(align_multiple_knl.function, 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:24: in function 591s self._function = self._make_function() 591s ^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:28: in _make_function 591s src, annotations = self._get_code() 591s ^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 591s def _get_code(self): 591s m = ast.parse(dedent(inspect.getsource(self.template))) 591s argspec = getfullargspec(self.template) 591s args = argspec.args 591s if args[0] == 'self': 591s args = args[1:] 591s extra_args, extra_annotations = self.extra_args() 591s args += extra_args 591s arg_string = ', '.join(args) 591s body = m.body[0].body 591s > template = body[-1].value.s 591s ^^^^^^^^^^^^^^^^ 591s E AttributeError: 'Constant' object has no attribute 's' 591s 591s ../../build.YR5/src/compyle/template.py:52: AttributeError 591s __________________________ test_sort_by_keys[cython] ___________________________ 591s 591s args = ([, ], ) 591s kwargs = {'backend': 'cython'}, key = ('gintp', 'gintp', 'cython', False) 591s 591s def wrapper(*args, **kwargs): 591s key = key_func(*args, **kwargs) 591s try: 591s > return func._memoize_dic[key] 591s ^^^^^^^^^^^^^^^^^ 591s E AttributeError: 'function' object has no attribute '_memoize_dic' 591s 591s /usr/lib/python3/dist-packages/pytools/__init__.py:684: AttributeError 591s 591s During handling of the above exception, another exception occurred: 591s 591s backend = 'cython' 591s 591s @check_all_backends 591s def test_sort_by_keys(backend): 591s check_import(backend) 591s 591s # Given 591s pre_nparr1 = np.random.randint(0, 100, 16, dtype=np.int32) 591s pre_nparr2 = np.random.randint(0, 100, 16, dtype=np.int32) 591s 591s ## drop non unique values 591s nparr1, indices = np.unique(pre_nparr1, return_index=True) 591s nparr2 = pre_nparr2[indices] 591s 591s dev_array1, dev_array2 = array.wrap(nparr1, nparr2, backend=backend) 591s 591s # When 591s > out_array1, out_array2 = array.sort_by_keys([dev_array1, dev_array2]) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_array.py:271: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/profile.py:72: in wrapper 591s return method(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/array.py:626: in sort_by_keys 591s out_list = align(ary_list, order, out_list=out_list, 591s ../../build.YR5/src/compyle/array.py:825: in align 591s align_multiple_elwise = get_align_kernel(ary_list, order, backend=backend) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pytools/__init__.py:687: in wrapper 591s result = func(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/array.py:806: in get_align_kernel 591s align_multiple_elwise = parallel.Elementwise(align_multiple_knl.function, 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:24: in function 591s self._function = self._make_function() 591s ^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:28: in _make_function 591s src, annotations = self._get_code() 591s ^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 591s def _get_code(self): 591s m = ast.parse(dedent(inspect.getsource(self.template))) 591s argspec = getfullargspec(self.template) 591s args = argspec.args 591s if args[0] == 'self': 591s args = args[1:] 591s extra_args, extra_annotations = self.extra_args() 591s args += extra_args 591s arg_string = ', '.join(args) 591s body = m.body[0].body 591s > template = body[-1].value.s 591s ^^^^^^^^^^^^^^^^ 591s E AttributeError: 'Constant' object has no attribute 's' 591s 591s ../../build.YR5/src/compyle/template.py:52: AttributeError 591s ___________________________ test_radix_sort_by_keys ____________________________ 591s 591s def test_radix_sort_by_keys(): 591s backend = 'cython' 591s for use_openmp in [True, False]: 591s get_config().use_openmp = use_openmp 591s # Given 591s pre_nparr1 = np.random.randint(0, 100, 16, dtype=np.int32) 591s pre_nparr2 = np.random.randint(0, 100, 16, dtype=np.int32) 591s 591s ## drop non unique values 591s nparr1, indices = np.unique(pre_nparr1, return_index=True) 591s nparr2 = pre_nparr2[indices] 591s 591s dev_array1, dev_array2 = array.wrap(nparr1, nparr2, backend=backend) 591s 591s # When 591s > out_array1, out_array2 = array.sort_by_keys([dev_array1, dev_array2], 591s use_radix_sort=True) 591s 591s ../../build.YR5/src/compyle/tests/test_array.py:296: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/profile.py:72: in wrapper 591s return method(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/array.py:621: in sort_by_keys 591s out_list, order = radix_sort(ary_list, out_list=out_list, 591s ../../build.YR5/src/compyle/sort.py:66: in radix_sort 591s sort_bit_knl = Scan(input_sort_bit, output_sort_bit.function, 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:24: in function 591s self._function = self._make_function() 591s ^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:28: in _make_function 591s src, annotations = self._get_code() 591s ^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 591s def _get_code(self): 591s m = ast.parse(dedent(inspect.getsource(self.template))) 591s argspec = getfullargspec(self.template) 591s args = argspec.args 591s if args[0] == 'self': 591s args = args[1:] 591s extra_args, extra_annotations = self.extra_args() 591s args += extra_args 591s arg_string = ', '.join(args) 591s body = m.body[0].body 591s > template = body[-1].value.s 591s ^^^^^^^^^^^^^^^^ 591s E AttributeError: 'Constant' object has no attribute 's' 591s 591s ../../build.YR5/src/compyle/template.py:52: AttributeError 591s ____________________ test_sort_by_keys_with_output[cython] _____________________ 591s 591s args = ([, ], ) 591s kwargs = {'backend': 'cython'}, key = ('gintp', 'gintp', 'cython', True) 591s 591s def wrapper(*args, **kwargs): 591s key = key_func(*args, **kwargs) 591s try: 591s > return func._memoize_dic[key] 591s ^^^^^^^^^^^^^^^^^ 591s E AttributeError: 'function' object has no attribute '_memoize_dic' 591s 591s /usr/lib/python3/dist-packages/pytools/__init__.py:684: AttributeError 591s 591s During handling of the above exception, another exception occurred: 591s 591s backend = 'cython' 591s 591s @pytest.mark.parametrize( 591s 'backend', ['cython', 'opencl', 591s pytest.param('cuda', marks=pytest.mark.xfail)]) 591s def test_sort_by_keys_with_output(backend): 591s check_import(backend) 591s 591s # Given 591s pre_nparr1 = np.random.randint(0, 100, 16, dtype=np.int32) 591s pre_nparr2 = np.random.randint(0, 100, 16, dtype=np.int32) 591s 591s ## drop non unique values 591s nparr1, indices = np.unique(pre_nparr1, return_index=True) 591s nparr2 = pre_nparr2[indices] 591s 591s dev_array1, dev_array2 = array.wrap(nparr1, nparr2, backend=backend) 591s out_arrays = [ 591s array.zeros_like(dev_array1), 591s array.zeros_like(dev_array2)] 591s 591s # When 591s > array.sort_by_keys([dev_array1, dev_array2], 591s out_list=out_arrays, use_radix_sort=False) 591s 591s ../../build.YR5/src/compyle/tests/test_array.py:330: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/profile.py:72: in wrapper 591s return method(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/array.py:626: in sort_by_keys 591s out_list = align(ary_list, order, out_list=out_list, 591s ../../build.YR5/src/compyle/array.py:825: in align 591s align_multiple_elwise = get_align_kernel(ary_list, order, backend=backend) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pytools/__init__.py:687: in wrapper 591s result = func(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/array.py:806: in get_align_kernel 591s align_multiple_elwise = parallel.Elementwise(align_multiple_knl.function, 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:24: in function 591s self._function = self._make_function() 591s ^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:28: in _make_function 591s src, annotations = self._get_code() 591s ^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 591s def _get_code(self): 591s m = ast.parse(dedent(inspect.getsource(self.template))) 591s argspec = getfullargspec(self.template) 591s args = argspec.args 591s if args[0] == 'self': 591s args = args[1:] 591s extra_args, extra_annotations = self.extra_args() 591s args += extra_args 591s arg_string = ', '.join(args) 591s body = m.body[0].body 591s > template = body[-1].value.s 591s ^^^^^^^^^^^^^^^^ 591s E AttributeError: 'Constant' object has no attribute 's' 591s 591s ../../build.YR5/src/compyle/template.py:52: AttributeError 591s ___________________________ test_diff[int32-opencl] ____________________________ 591s 591s backend = 'opencl', dtype = 591s 591s @check_all_backends 591s @check_all_dtypes 591s def test_diff(backend, dtype): 591s check_import(backend) 591s if dtype == np.float64: 591s get_config().use_double = True 591s dev_array = array.ones(1, dtype=dtype, backend=backend) 591s with pytest.raises(ValueError): 591s y = array.diff(dev_array, 1) 591s y = array.diff(dev_array, 0) 591s assert(y[0] == dev_array[0]) 591s 591s dev_array = array.ones(2, dtype=dtype, backend=backend) 591s with pytest.raises(ValueError): 591s y = array.diff(dev_array, -1) 591s > y = array.diff(dev_array, 1) 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_array.py:434: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/array.py:449: in diff 591s e(y, a, binom_coeff, len(binom_coeff)) 591s ../../build.YR5/src/compyle/parallel.py:573: in __call__ 591s self.elementwise(*args, **kwargs) 591s ../../build.YR5/src/compyle/profile.py:72: in wrapper 591s return method(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:359: in __call__ 591s c_func = self._generate_kernel(*args) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:29: in wrapper 591s setattr(f, 'cached_kernel', {key_val: method(*args)}) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:345: in _generate_kernel 591s declarations = helper.annotate() 591s ^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:167: in annotate 591s self.visit(code) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:277: in visit_Assign 591s right_type = self.visit(right) 591s ^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:242: in visit_Call 591s return self.visit_declare(node) 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None), Constant(value=1, kind=None)], keywords=[]) 591s 591s def visit_declare(self, node): 591s > if not isinstance(node.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/jit.py:205: AttributeError 591s __________________________ test_diff[float32-opencl] ___________________________ 591s 591s backend = 'opencl', dtype = 591s 591s @check_all_backends 591s @check_all_dtypes 591s def test_diff(backend, dtype): 591s check_import(backend) 591s if dtype == np.float64: 591s get_config().use_double = True 591s dev_array = array.ones(1, dtype=dtype, backend=backend) 591s with pytest.raises(ValueError): 591s y = array.diff(dev_array, 1) 591s y = array.diff(dev_array, 0) 591s assert(y[0] == dev_array[0]) 591s 591s dev_array = array.ones(2, dtype=dtype, backend=backend) 591s with pytest.raises(ValueError): 591s y = array.diff(dev_array, -1) 591s > y = array.diff(dev_array, 1) 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_array.py:434: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/array.py:449: in diff 591s e(y, a, binom_coeff, len(binom_coeff)) 591s ../../build.YR5/src/compyle/parallel.py:573: in __call__ 591s self.elementwise(*args, **kwargs) 591s ../../build.YR5/src/compyle/profile.py:72: in wrapper 591s return method(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:359: in __call__ 591s c_func = self._generate_kernel(*args) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:29: in wrapper 591s setattr(f, 'cached_kernel', {key_val: method(*args)}) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:345: in _generate_kernel 591s declarations = helper.annotate() 591s ^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:167: in annotate 591s self.visit(code) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:277: in visit_Assign 591s right_type = self.visit(right) 591s ^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:242: in visit_Call 591s return self.visit_declare(node) 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None), Constant(value=1, kind=None)], keywords=[]) 591s 591s def visit_declare(self, node): 591s > if not isinstance(node.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/jit.py:205: AttributeError 591s __________________________ test_diff[float64-opencl] ___________________________ 591s 591s backend = 'opencl', dtype = 591s 591s @check_all_backends 591s @check_all_dtypes 591s def test_diff(backend, dtype): 591s check_import(backend) 591s if dtype == np.float64: 591s get_config().use_double = True 591s dev_array = array.ones(1, dtype=dtype, backend=backend) 591s with pytest.raises(ValueError): 591s y = array.diff(dev_array, 1) 591s y = array.diff(dev_array, 0) 591s assert(y[0] == dev_array[0]) 591s 591s dev_array = array.ones(2, dtype=dtype, backend=backend) 591s with pytest.raises(ValueError): 591s y = array.diff(dev_array, -1) 591s > y = array.diff(dev_array, 1) 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_array.py:434: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/array.py:449: in diff 591s e(y, a, binom_coeff, len(binom_coeff)) 591s ../../build.YR5/src/compyle/parallel.py:573: in __call__ 591s self.elementwise(*args, **kwargs) 591s ../../build.YR5/src/compyle/profile.py:72: in wrapper 591s return method(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:359: in __call__ 591s c_func = self._generate_kernel(*args) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:29: in wrapper 591s setattr(f, 'cached_kernel', {key_val: method(*args)}) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:345: in _generate_kernel 591s declarations = helper.annotate() 591s ^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:167: in annotate 591s self.visit(code) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:277: in visit_Assign 591s right_type = self.visit(right) 591s ^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:242: in visit_Call 591s return self.visit_declare(node) 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None), Constant(value=1, kind=None)], keywords=[]) 591s 591s def visit_declare(self, node): 591s > if not isinstance(node.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/jit.py:205: AttributeError 591s ______________________________ test_trapz[opencl] ______________________________ 591s 591s backend = 'opencl' 591s 591s @check_all_backends 591s def test_trapz(backend): 591s check_import(backend) 591s x = array.linspace(0, 5, 6, dtype=np.float32, backend=backend) 591s y = array.linspace(0, 5, 6, dtype=np.float32, backend=backend) 591s xn = np.linspace(0, 5, 6, dtype=np.float32) 591s yn = np.linspace(0, 5, 6, dtype=np.float32) 591s assert(array.trapz(y) == np.trapz(yn)) 591s > assert(array.trapz(y, x,) == np.trapz(yn, xn)) 591s ^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_array.py:453: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/array.py:516: in trapz 591s d = diff(x, 1, backend=backend) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/array.py:449: in diff 591s e(y, a, binom_coeff, len(binom_coeff)) 591s ../../build.YR5/src/compyle/parallel.py:573: in __call__ 591s self.elementwise(*args, **kwargs) 591s ../../build.YR5/src/compyle/profile.py:72: in wrapper 591s return method(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:359: in __call__ 591s c_func = self._generate_kernel(*args) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:29: in wrapper 591s setattr(f, 'cached_kernel', {key_val: method(*args)}) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:345: in _generate_kernel 591s declarations = helper.annotate() 591s ^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:167: in annotate 591s self.visit(code) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:277: in visit_Assign 591s right_type = self.visit(right) 591s ^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:242: in visit_Call 591s return self.visit_declare(node) 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None), Constant(value=1, kind=None)], keywords=[]) 591s 591s def visit_declare(self, node): 591s > if not isinstance(node.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/jit.py:205: AttributeError 591s _________________________ test_take_bool[opencl-int32] _________________________ 591s 591s dtype = , backend = 'opencl' 591s 591s @check_all_dtypes 591s @check_all_backends 591s def test_take_bool(dtype, backend): 591s check_import(backend) 591s if dtype == np.float64: 591s get_config().use_double = True 591s 591s # Given 591s x = array.arange(0, 10, 1, backend=backend, dtype=dtype) 591s cond = x > 5 591s 591s # When 591s > out = array.take_bool(x, cond) 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_array.py:569: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/array.py:771: in take_bool 591s e(condition, ary, cumsum_ar, out_ar) 591s ../../build.YR5/src/compyle/parallel.py:573: in __call__ 591s self.elementwise(*args, **kwargs) 591s ../../build.YR5/src/compyle/profile.py:72: in wrapper 591s return method(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:359: in __call__ 591s c_func = self._generate_kernel(*args) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:31: in wrapper 591s f.cached_kernel[key_val] = method(*args) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:347: in _generate_kernel 591s return self._generate(declarations=declarations) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/parallel.py:474: in _generate 591s all_source = knl.get_kernel(False)[0].program.source 591s ^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pytools/__init__.py:758: in wrapper 591s result = function(obj, *args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:244: in get_kernel 591s knl, arg_descrs = get_elwise_kernel_and_types( 591s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:169: in get_elwise_kernel_and_types 591s prg = get_elwise_program( 591s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:116: in get_elwise_program 591s return cl.Program(context, source).build(options) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pyopencl/__init__.py:518: in build 591s self._build_and_catch_errors( 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s build_func = . at 0xf8640e289c70> 591s options_bytes = b'-I /usr/lib/python3/dist-packages/pyopencl/cl', source = None 591s 591s def _build_and_catch_errors(self, build_func, options_bytes, source=None): 591s try: 591s return build_func() 591s except RuntimeError as e: 591s msg = str(e) 591s if options_bytes: 591s msg = msg + "\n(options: %s)" % options_bytes.decode("utf-8") 591s 591s if source is not None: 591s from tempfile import NamedTemporaryFile 591s srcfile = NamedTemporaryFile(mode="wt", delete=False, suffix=".cl") 591s try: 591s srcfile.write(source) 591s finally: 591s srcfile.close() 591s 591s msg = msg + "\n(source saved as %s)" % srcfile.name 591s 591s code = e.code 591s routine = e.routine 591s 591s err = RuntimeError( 591s _cl._ErrorRecord( 591s msg=msg, 591s code=code, 591s routine=routine)) 591s 591s # Python 3.2 outputs the whole list of currently active exceptions 591s # This serves to remove one (redundant) level from that nesting. 591s > raise err 591s E pyopencl._cl.RuntimeError: clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE 591s E 591s E Build on : 591s E 591s E error: /tmp/autopkgtest.ruUQ6J/autopkgtest_tmp/.cache/pocl/kcache/tempfile_DXquPh.cl:75:33: use of undeclared identifier 'None' 591s E warning: /tmp/autopkgtest.ruUQ6J/autopkgtest_tmp/.cache/pocl/kcache/tempfile_DXquPh.cl:62:9: 'max' macro redefined 591s E warning: /tmp/autopkgtest.ruUQ6J/autopkgtest_tmp/.cache/pocl/kcache/tempfile_DXquPh.cl:62:9: 'max' macro redefined 591s E Device cpu--0xd0c failed to build the program 591s E 591s E (options: -I /usr/lib/python3/dist-packages/pyopencl/cl) 591s 591s /usr/lib/python3/dist-packages/pyopencl/__init__.py:574: RuntimeError 591s ----------------------------- Captured stderr call ----------------------------- 591s 1 warning generated. 591s 1 warning generated. 591s 1 warning generated. 591s 1 warning generated. 591s 1 warning generated. 591s 2 warnings and 1 error generated. 591s ------------------------------ Captured log call ------------------------------- 591s DEBUG pyopencl.scan:scan.py:1198 cache miss for generated scan kernel 'scan' 591s ________________________ test_take_bool[opencl-float32] ________________________ 591s 591s dtype = , backend = 'opencl' 591s 591s @check_all_dtypes 591s @check_all_backends 591s def test_take_bool(dtype, backend): 591s check_import(backend) 591s if dtype == np.float64: 591s get_config().use_double = True 591s 591s # Given 591s x = array.arange(0, 10, 1, backend=backend, dtype=dtype) 591s cond = x > 5 591s 591s # When 591s > out = array.take_bool(x, cond) 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_array.py:569: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/array.py:771: in take_bool 591s e(condition, ary, cumsum_ar, out_ar) 591s ../../build.YR5/src/compyle/parallel.py:573: in __call__ 591s self.elementwise(*args, **kwargs) 591s ../../build.YR5/src/compyle/profile.py:72: in wrapper 591s return method(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:359: in __call__ 591s c_func = self._generate_kernel(*args) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:31: in wrapper 591s f.cached_kernel[key_val] = method(*args) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:347: in _generate_kernel 591s return self._generate(declarations=declarations) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/parallel.py:474: in _generate 591s all_source = knl.get_kernel(False)[0].program.source 591s ^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pytools/__init__.py:758: in wrapper 591s result = function(obj, *args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:244: in get_kernel 591s knl, arg_descrs = get_elwise_kernel_and_types( 591s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:169: in get_elwise_kernel_and_types 591s prg = get_elwise_program( 591s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:116: in get_elwise_program 591s return cl.Program(context, source).build(options) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pyopencl/__init__.py:518: in build 591s self._build_and_catch_errors( 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s build_func = . at 0xf863f7761fe0> 591s options_bytes = b'-I /usr/lib/python3/dist-packages/pyopencl/cl', source = None 591s 591s def _build_and_catch_errors(self, build_func, options_bytes, source=None): 591s try: 591s return build_func() 591s except RuntimeError as e: 591s msg = str(e) 591s if options_bytes: 591s msg = msg + "\n(options: %s)" % options_bytes.decode("utf-8") 591s 591s if source is not None: 591s from tempfile import NamedTemporaryFile 591s srcfile = NamedTemporaryFile(mode="wt", delete=False, suffix=".cl") 591s try: 591s srcfile.write(source) 591s finally: 591s srcfile.close() 591s 591s msg = msg + "\n(source saved as %s)" % srcfile.name 591s 591s code = e.code 591s routine = e.routine 591s 591s err = RuntimeError( 591s _cl._ErrorRecord( 591s msg=msg, 591s code=code, 591s routine=routine)) 591s 591s # Python 3.2 outputs the whole list of currently active exceptions 591s # This serves to remove one (redundant) level from that nesting. 591s > raise err 591s E pyopencl._cl.RuntimeError: clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE 591s E 591s E Build on : 591s E 591s E error: /tmp/autopkgtest.ruUQ6J/autopkgtest_tmp/.cache/pocl/kcache/tempfile_1TPV4M.cl:76:33: use of undeclared identifier 'None' 591s E warning: /tmp/autopkgtest.ruUQ6J/autopkgtest_tmp/.cache/pocl/kcache/tempfile_1TPV4M.cl:62:9: 'max' macro redefined 591s E warning: /tmp/autopkgtest.ruUQ6J/autopkgtest_tmp/.cache/pocl/kcache/tempfile_1TPV4M.cl:62:9: 'max' macro redefined 591s E Device cpu--0xd0c failed to build the program 591s E 591s E (options: -I /usr/lib/python3/dist-packages/pyopencl/cl) 591s 591s /usr/lib/python3/dist-packages/pyopencl/__init__.py:574: RuntimeError 591s ----------------------------- Captured stderr call ----------------------------- 591s 1 warning generated. 591s 2 warnings and 1 error generated. 591s ________________________ test_take_bool[opencl-float64] ________________________ 591s 591s dtype = , backend = 'opencl' 591s 591s @check_all_dtypes 591s @check_all_backends 591s def test_take_bool(dtype, backend): 591s check_import(backend) 591s if dtype == np.float64: 591s get_config().use_double = True 591s 591s # Given 591s x = array.arange(0, 10, 1, backend=backend, dtype=dtype) 591s cond = x > 5 591s 591s # When 591s > out = array.take_bool(x, cond) 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_array.py:569: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/array.py:771: in take_bool 591s e(condition, ary, cumsum_ar, out_ar) 591s ../../build.YR5/src/compyle/parallel.py:573: in __call__ 591s self.elementwise(*args, **kwargs) 591s ../../build.YR5/src/compyle/profile.py:72: in wrapper 591s return method(*args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:359: in __call__ 591s c_func = self._generate_kernel(*args) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:31: in wrapper 591s f.cached_kernel[key_val] = method(*args) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:347: in _generate_kernel 591s return self._generate(declarations=declarations) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/parallel.py:474: in _generate 591s all_source = knl.get_kernel(False)[0].program.source 591s ^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pytools/__init__.py:758: in wrapper 591s result = function(obj, *args, **kwargs) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:244: in get_kernel 591s knl, arg_descrs = get_elwise_kernel_and_types( 591s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:169: in get_elwise_kernel_and_types 591s prg = get_elwise_program( 591s /usr/lib/python3/dist-packages/pyopencl/elementwise.py:116: in get_elwise_program 591s return cl.Program(context, source).build(options) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3/dist-packages/pyopencl/__init__.py:518: in build 591s self._build_and_catch_errors( 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s build_func = . at 0xf863f31cd900> 591s options_bytes = b'-I /usr/lib/python3/dist-packages/pyopencl/cl', source = None 591s 591s def _build_and_catch_errors(self, build_func, options_bytes, source=None): 591s try: 591s return build_func() 591s except RuntimeError as e: 591s msg = str(e) 591s if options_bytes: 591s msg = msg + "\n(options: %s)" % options_bytes.decode("utf-8") 591s 591s if source is not None: 591s from tempfile import NamedTemporaryFile 591s srcfile = NamedTemporaryFile(mode="wt", delete=False, suffix=".cl") 591s try: 591s srcfile.write(source) 591s finally: 591s srcfile.close() 591s 591s msg = msg + "\n(source saved as %s)" % srcfile.name 591s 591s code = e.code 591s routine = e.routine 591s 591s err = RuntimeError( 591s _cl._ErrorRecord( 591s msg=msg, 591s code=code, 591s routine=routine)) 591s 591s # Python 3.2 outputs the whole list of currently active exceptions 591s # This serves to remove one (redundant) level from that nesting. 591s > raise err 591s E pyopencl._cl.RuntimeError: clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE 591s E 591s E Build on : 591s E 591s E error: /tmp/autopkgtest.ruUQ6J/autopkgtest_tmp/.cache/pocl/kcache/tempfile_Az8sVc.cl:82:33: use of undeclared identifier 'None' 591s E warning: /tmp/autopkgtest.ruUQ6J/autopkgtest_tmp/.cache/pocl/kcache/tempfile_Az8sVc.cl:68:9: 'max' macro redefined 591s E warning: /tmp/autopkgtest.ruUQ6J/autopkgtest_tmp/.cache/pocl/kcache/tempfile_Az8sVc.cl:68:9: 'max' macro redefined 591s E Device cpu--0xd0c failed to build the program 591s E 591s E (options: -I /usr/lib/python3/dist-packages/pyopencl/cl) 591s 591s /usr/lib/python3/dist-packages/pyopencl/__init__.py:574: RuntimeError 591s ----------------------------- Captured stderr call ----------------------------- 591s 1 warning generated. 591s 2 warnings and 1 error generated. 591s ____________ TestCythonCodeGenerator.test_function_with_annotation _____________ 591s 591s self = 591s 591s def test_function_with_annotation(self): 591s # Given 591s cg = CythonGenerator() 591s # When 591s > cg.parse(annotated_f) 591s 591s ../../build.YR5/src/compyle/tests/test_cython_generator.py:242: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/cython_generator.py:208: in parse 591s self._parse_function(obj, declarations=declarations, 591s ../../build.YR5/src/compyle/cython_generator.py:505: in _parse_function 591s c_code, py_code = self._get_method_wrapper(obj, indent=' ' * 4, 591s ../../build.YR5/src/compyle/cython_generator.py:398: in _get_method_wrapper 591s c_body = self._get_method_body(meth, lines, indent=indent, 591s ../../build.YR5/src/compyle/cython_generator.py:368: in _get_method_body 591s src = [self._process_body_line(line, is_serial=is_serial) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:535: in _process_body_line 591s defn = self._handle_declare_statement(name, declare) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:462: in _handle_declare_statement 591s kind, _address_space, ctype, shape = parse_declare(declare) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s code = 'declare(\'LOCAL_MEM matrix(64, "unsigned int")\')' 591s 591s def parse_declare(code): 591s """Given a string with the source for the declare method, 591s return the type information. 591s """ 591s m = ast.parse(code) 591s call = m.body[0].value 591s if call.func.id != 'declare': 591s raise CodeGenerationError('Unknown declare statement: %s' % code) 591s arg0 = call.args[0] 591s > if not isinstance(arg0, ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/cython_generator.py:129: AttributeError 591s _______________ TestCythonCodeGenerator.test_method_with_declare _______________ 591s 591s self = 591s 591s def test_method_with_declare(self): 591s cg = CythonGenerator() 591s > cg.parse(EqWithDeclare()) 591s 591s ../../build.YR5/src/compyle/tests/test_cython_generator.py:396: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/cython_generator.py:211: in parse 591s self._parse_instance(obj) 591s ../../build.YR5/src/compyle/cython_generator.py:518: in _parse_instance 591s methods = self._get_methods(cls) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:352: in _get_methods 591s c_code, py_code = self._get_method_wrapper( 591s ../../build.YR5/src/compyle/cython_generator.py:398: in _get_method_wrapper 591s c_body = self._get_method_body(meth, lines, indent=indent, 591s ../../build.YR5/src/compyle/cython_generator.py:368: in _get_method_body 591s src = [self._process_body_line(line, is_serial=is_serial) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:535: in _process_body_line 591s defn = self._handle_declare_statement(name, declare) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:462: in _handle_declare_statement 591s kind, _address_space, ctype, shape = parse_declare(declare) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s code = "declare('float', 2)" 591s 591s def parse_declare(code): 591s """Given a string with the source for the declare method, 591s return the type information. 591s """ 591s m = ast.parse(code) 591s call = m.body[0].value 591s if call.func.id != 'declare': 591s raise CodeGenerationError('Unknown declare statement: %s' % code) 591s arg0 = call.args[0] 591s > if not isinstance(arg0, ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/cython_generator.py:129: AttributeError 591s _______________ TestCythonCodeGenerator.test_method_with_matrix ________________ 591s 591s self = 591s 591s def test_method_with_matrix(self): 591s cg = CythonGenerator() 591s > cg.parse(EqWithMatrix()) 591s 591s ../../build.YR5/src/compyle/tests/test_cython_generator.py:379: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/cython_generator.py:211: in parse 591s self._parse_instance(obj) 591s ../../build.YR5/src/compyle/cython_generator.py:518: in _parse_instance 591s methods = self._get_methods(cls) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:352: in _get_methods 591s c_code, py_code = self._get_method_wrapper( 591s ../../build.YR5/src/compyle/cython_generator.py:398: in _get_method_wrapper 591s c_body = self._get_method_body(meth, lines, indent=indent, 591s ../../build.YR5/src/compyle/cython_generator.py:368: in _get_method_body 591s src = [self._process_body_line(line, is_serial=is_serial) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:535: in _process_body_line 591s defn = self._handle_declare_statement(name, declare) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:462: in _handle_declare_statement 591s kind, _address_space, ctype, shape = parse_declare(declare) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s code = "declare('matrix((2,2))')" 591s 591s def parse_declare(code): 591s """Given a string with the source for the declare method, 591s return the type information. 591s """ 591s m = ast.parse(code) 591s call = m.body[0].value 591s if call.func.id != 'declare': 591s raise CodeGenerationError('Unknown declare statement: %s' % code) 591s arg0 = call.args[0] 591s > if not isinstance(arg0, ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/cython_generator.py:129: AttributeError 591s _______________ TestCythonCodeGenerator.test_python3_annotation ________________ 591s 591s self = 591s 591s @unittest.skipIf(sys.version_info < (3, 4), reason='Requires Python3.') 591s def test_python3_annotation(self): 591s # Given 591s from .py3_code import py3_f 591s cg = CythonGenerator() 591s 591s # When 591s > cg.parse(py3_f) 591s 591s ../../build.YR5/src/compyle/tests/test_cython_generator.py:259: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/cython_generator.py:208: in parse 591s self._parse_function(obj, declarations=declarations, 591s ../../build.YR5/src/compyle/cython_generator.py:505: in _parse_function 591s c_code, py_code = self._get_method_wrapper(obj, indent=' ' * 4, 591s ../../build.YR5/src/compyle/cython_generator.py:398: in _get_method_wrapper 591s c_body = self._get_method_body(meth, lines, indent=indent, 591s ../../build.YR5/src/compyle/cython_generator.py:368: in _get_method_body 591s src = [self._process_body_line(line, is_serial=is_serial) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:535: in _process_body_line 591s defn = self._handle_declare_statement(name, declare) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:462: in _handle_declare_statement 591s kind, _address_space, ctype, shape = parse_declare(declare) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s code = "declare('int')" 591s 591s def parse_declare(code): 591s """Given a string with the source for the declare method, 591s return the type information. 591s """ 591s m = ast.parse(code) 591s call = m.body[0].value 591s if call.func.id != 'declare': 591s raise CodeGenerationError('Unknown declare statement: %s' % code) 591s arg0 = call.args[0] 591s > if not isinstance(arg0, ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/cython_generator.py:129: AttributeError 591s __________________ TestAnnotationHelper.test_cast_return_type __________________ 591s 591s self = 591s 591s def test_cast_return_type(self): 591s # Given 591s @annotate 591s def f(a): 591s return cast(a, "int") 591s 591s # When 591s types = {'a': 'double'} 591s helper = AnnotationHelper(f, types) 591s > helper.annotate() 591s 591s ../../build.YR5/src/compyle/tests/test_jit.py:469: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/jit.py:167: in annotate 591s self.visit(code) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:306: in visit_Return 591s result_type = self.visit(node.value) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:244: in visit_Call 591s return self.visit_cast(node) 591s ^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s node = Call(func=Name(id='cast', ctx=Load()), args=[Name(id='a', ctx=Load()), Constant(value='int', kind=None)], keywords=[]) 591s 591s def visit_cast(self, node): 591s > if not isinstance(node.args[1], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/jit.py:211: AttributeError 591s _____________ TestAnnotationHelper.test_declare_multiple_variables _____________ 591s 591s self = 591s 591s def test_declare_multiple_variables(self): 591s # Given 591s @annotate 591s def f(x): 591s a, b = declare('int', 2) 591s a = 0 591s b = 1 591s return x + a + b 591s 591s # When 591s types = {'x': 'int'} 591s helper = AnnotationHelper(f, types) 591s > helper.annotate() 591s 591s ../../build.YR5/src/compyle/tests/test_jit.py:88: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/jit.py:167: in annotate 591s self.visit(code) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:277: in visit_Assign 591s right_type = self.visit(right) 591s ^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:242: in visit_Call 591s return self.visit_declare(node) 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None), Constant(value=2, kind=None)], keywords=[]) 591s 591s def visit_declare(self, node): 591s > if not isinstance(node.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/jit.py:205: AttributeError 591s ________________ TestAnnotationHelper.test_variable_as_call_arg ________________ 591s 591s self = 591s 591s def test_variable_as_call_arg(self): 591s # Given 591s @annotate 591s def f(a, b): 591s x = declare('int') 591s x = a + b 591s return g(x) 591s 591s # When 591s types = {'a': 'int', 'b': 'int'} 591s helper = AnnotationHelper(f, types) 591s > helper.annotate() 591s 591s ../../build.YR5/src/compyle/tests/test_jit.py:105: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/jit.py:167: in annotate 591s self.visit(code) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:277: in visit_Assign 591s right_type = self.visit(right) 591s ^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:242: in visit_Call 591s return self.visit_declare(node) 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None)], keywords=[]) 591s 591s def visit_declare(self, node): 591s > if not isinstance(node.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/jit.py:205: AttributeError 591s ____________ TestAnnotationHelper.test_variable_as_call_arg_nonjit _____________ 591s 591s self = 591s 591s def test_variable_as_call_arg_nonjit(self): 591s # Given 591s @annotate 591s def f(a, b): 591s x = declare('int') 591s x = a + b 591s return g_nonjit(x) 591s 591s # When 591s types = {'a': 'int', 'b': 'int'} 591s helper = AnnotationHelper(f, types) 591s > helper.annotate() 591s 591s ../../build.YR5/src/compyle/tests/test_jit.py:121: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/jit.py:167: in annotate 591s self.visit(code) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:514: in generic_visit 591s self.visit(item) 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:277: in visit_Assign 591s right_type = self.visit(right) 591s ^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/jit.py:242: in visit_Call 591s return self.visit_declare(node) 591s ^^^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s node = Call(func=Name(id='declare', ctx=Load()), args=[Constant(value='int', kind=None)], keywords=[]) 591s 591s def visit_declare(self, node): 591s > if not isinstance(node.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/jit.py:205: AttributeError 591s _______________ TestKernel.test_kernel_with_local_memory_opencl ________________ 591s 591s self = 591s 591s def test_kernel_with_local_memory_opencl(self): 591s importorskip('pyopencl') 591s 591s # Given 591s @annotate(gdoublep='x, y', xc='ldoublep', a='float') 591s def knl(x, y, xc, a): 591s i, lid = declare('int', 2) 591s lid = LID_0 591s i = GID_0 * LDIM_0 + lid 591s 591s xc[lid] = x[i] 591s 591s local_barrier() 591s 591s y[i] = xc[lid] * a 591s 591s x = np.linspace(0, 1, 1024) 591s y = np.zeros_like(x) 591s xc = LocalMem(1, backend='opencl') 591s 591s x, y = wrap(x, y, backend='opencl') 591s 591s # When 591s > k = Kernel(knl, backend='opencl') 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_low_level.py:87: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/low_level.py:150: in __init__ 591s self._generate() 591s ../../build.YR5/src/compyle/low_level.py:195: in _generate 591s self.tp.add(self.func) 591s ../../build.YR5/src/compyle/transpiler.py:278: in add 591s code = self._cgen.parse( 591s ../../build.YR5/src/compyle/translator.py:281: in parse 591s code = self.parse_function(obj, declarations=declarations) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:307: in parse_function 591s code = self.convert(src) 591s ^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:252: in convert 591s result = self.visit(code) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 591s return '\n'.join( 591s ../../build.YR5/src/compyle/translator.py:653: in 591s self.visit(item) for item in node.body 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:584: in visit_FunctionDef 591s body = '\n'.join(self._indent_block(self.visit(item)) 591s ../../build.YR5/src/compyle/translator.py:584: in 591s body = '\n'.join(self._indent_block(self.visit(item)) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 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) 591s 591s def visit_Assign(self, node): 591s if len(node.targets) != 1: 591s self.error("Assignments can have only one target.", node) 591s left, right = node.targets[0], node.value 591s if isinstance(right, ast.Call) and \ 591s isinstance(right.func, ast.Name) and right.func.id == 'declare': 591s > if not isinstance(right.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/translator.py:344: AttributeError 591s _____________________ TestKernel.test_simple_kernel_opencl _____________________ 591s 591s self = 591s 591s def test_simple_kernel_opencl(self): 591s importorskip('pyopencl') 591s 591s # Given 591s @annotate(gdoublep='x, y', a='float', size='int') 591s def knl(x, y, a, size): 591s i = declare('int') 591s i = GID_0*LDIM_0 + LID_0 591s if i < size: 591s y[i] = x[i]*a 591s 591s x = np.linspace(0, 1, 1000) 591s y = np.zeros_like(x) 591s x, y = wrap(x, y, backend='opencl') 591s 591s # When 591s > k = Kernel(knl, backend='opencl') 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_low_level.py:32: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/low_level.py:150: in __init__ 591s self._generate() 591s ../../build.YR5/src/compyle/low_level.py:195: in _generate 591s self.tp.add(self.func) 591s ../../build.YR5/src/compyle/transpiler.py:278: in add 591s code = self._cgen.parse( 591s ../../build.YR5/src/compyle/translator.py:281: in parse 591s code = self.parse_function(obj, declarations=declarations) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:307: in parse_function 591s code = self.convert(src) 591s ^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:252: in convert 591s result = self.visit(code) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 591s return '\n'.join( 591s ../../build.YR5/src/compyle/translator.py:653: in 591s self.visit(item) for item in node.body 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:584: in visit_FunctionDef 591s body = '\n'.join(self._indent_block(self.visit(item)) 591s ../../build.YR5/src/compyle/translator.py:584: in 591s body = '\n'.join(self._indent_block(self.visit(item)) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 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) 591s 591s def visit_Assign(self, node): 591s if len(node.targets) != 1: 591s self.error("Assignments can have only one target.", node) 591s left, right = node.targets[0], node.value 591s if isinstance(right, ast.Call) and \ 591s isinstance(right.func, ast.Name) and right.func.id == 'declare': 591s > if not isinstance(right.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/translator.py:344: AttributeError 591s ___________ TestCython.test_cython_code_with_return_and_nested_call ____________ 591s 591s self = 591s 591s def test_cython_code_with_return_and_nested_call(self): 591s # Given 591s n = 1000 591s x = np.linspace(0, 1, n) 591s y = x.copy() 591s a = 2.0 591s 591s # When 591s > cy = Cython(knl) 591s ^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_low_level.py:167: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/low_level.py:360: in __init__ 591s self._generate() 591s ../../build.YR5/src/compyle/low_level.py:363: in _generate 591s self.tp.add(self.func) 591s ../../build.YR5/src/compyle/transpiler.py:273: in add 591s self._cgen.parse( 591s ../../build.YR5/src/compyle/cython_generator.py:208: in parse 591s self._parse_function(obj, declarations=declarations, 591s ../../build.YR5/src/compyle/cython_generator.py:505: in _parse_function 591s c_code, py_code = self._get_method_wrapper(obj, indent=' ' * 4, 591s ../../build.YR5/src/compyle/cython_generator.py:398: in _get_method_wrapper 591s c_body = self._get_method_body(meth, lines, indent=indent, 591s ../../build.YR5/src/compyle/cython_generator.py:368: in _get_method_body 591s src = [self._process_body_line(line, is_serial=is_serial) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:535: in _process_body_line 591s defn = self._handle_declare_statement(name, declare) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:462: in _handle_declare_statement 591s kind, _address_space, ctype, shape = parse_declare(declare) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s code = "declare('int')" 591s 591s def parse_declare(code): 591s """Given a string with the source for the declare method, 591s return the type information. 591s """ 591s m = ast.parse(code) 591s call = m.body[0].value 591s if call.func.id != 'declare': 591s raise CodeGenerationError('Unknown declare statement: %s' % code) 591s arg0 = call.args[0] 591s > if not isinstance(arg0, ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/cython_generator.py:129: AttributeError 591s _____________________ TestCython.test_cython_with_externs ______________________ 591s 591s self = 591s 591s def test_cython_with_externs(self): 591s # Given 591s n = 1000 591s x = np.linspace(0, 1, n) 591s y = np.zeros_like(x) 591s a = 2.0 591s 591s # When 591s with use_config(use_openmp=True): 591s > cy = Cython(cy_extern) 591s ^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_low_level.py:182: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/low_level.py:360: in __init__ 591s self._generate() 591s ../../build.YR5/src/compyle/low_level.py:363: in _generate 591s self.tp.add(self.func) 591s ../../build.YR5/src/compyle/transpiler.py:273: in add 591s self._cgen.parse( 591s ../../build.YR5/src/compyle/cython_generator.py:208: in parse 591s self._parse_function(obj, declarations=declarations, 591s ../../build.YR5/src/compyle/cython_generator.py:505: in _parse_function 591s c_code, py_code = self._get_method_wrapper(obj, indent=' ' * 4, 591s ../../build.YR5/src/compyle/cython_generator.py:398: in _get_method_wrapper 591s c_body = self._get_method_body(meth, lines, indent=indent, 591s ../../build.YR5/src/compyle/cython_generator.py:368: in _get_method_body 591s src = [self._process_body_line(line, is_serial=is_serial) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:535: in _process_body_line 591s defn = self._handle_declare_statement(name, declare) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/cython_generator.py:462: in _handle_declare_statement 591s kind, _address_space, ctype, shape = parse_declare(declare) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s code = "declare('int')" 591s 591s def parse_declare(code): 591s """Given a string with the source for the declare method, 591s return the type information. 591s """ 591s m = ast.parse(code) 591s call = m.body[0].value 591s if call.func.id != 'declare': 591s raise CodeGenerationError('Unknown declare statement: %s' % code) 591s arg0 = call.args[0] 591s > if not isinstance(arg0, ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/cython_generator.py:129: AttributeError 591s _____________________________ test_simple_template _____________________________ 591s 591s def test_simple_template(): 591s # Given 591s t = SimpleTemplate(name='simple') 591s 591s # When 591s > simple = t.function 591s ^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_template.py:61: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/template.py:24: in function 591s self._function = self._make_function() 591s ^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:28: in _make_function 591s src, annotations = self._get_code() 591s ^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 591s def _get_code(self): 591s m = ast.parse(dedent(inspect.getsource(self.template))) 591s argspec = getfullargspec(self.template) 591s args = argspec.args 591s if args[0] == 'self': 591s args = args[1:] 591s extra_args, extra_annotations = self.extra_args() 591s args += extra_args 591s arg_string = ', '.join(args) 591s body = m.body[0].body 591s > template = body[-1].value.s 591s ^^^^^^^^^^^^^^^^ 591s E AttributeError: 'Constant' object has no attribute 's' 591s 591s ../../build.YR5/src/compyle/template.py:52: AttributeError 591s ______________________ test_that_source_code_is_available ______________________ 591s 591s def test_that_source_code_is_available(): 591s # Given/When 591s > dummy = Dummy('dummy').function 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_template.py:80: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/template.py:24: in function 591s self._function = self._make_function() 591s ^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:28: in _make_function 591s src, annotations = self._get_code() 591s ^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 591s def _get_code(self): 591s m = ast.parse(dedent(inspect.getsource(self.template))) 591s argspec = getfullargspec(self.template) 591s args = argspec.args 591s if args[0] == 'self': 591s args = args[1:] 591s extra_args, extra_annotations = self.extra_args() 591s args += extra_args 591s arg_string = ', '.join(args) 591s body = m.body[0].body 591s > template = body[-1].value.s 591s ^^^^^^^^^^^^^^^^ 591s E AttributeError: 'Constant' object has no attribute 's' 591s 591s ../../build.YR5/src/compyle/template.py:52: AttributeError 591s ___________________ test_template_usable_in_code_generation ____________________ 591s 591s def test_template_usable_in_code_generation(): 591s # Given 591s > twice = ParallelExample('twice').function 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_template.py:95: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/template.py:24: in function 591s self._function = self._make_function() 591s ^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:28: in _make_function 591s src, annotations = self._get_code() 591s ^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 591s def _get_code(self): 591s m = ast.parse(dedent(inspect.getsource(self.template))) 591s argspec = getfullargspec(self.template) 591s args = argspec.args 591s if args[0] == 'self': 591s args = args[1:] 591s extra_args, extra_annotations = self.extra_args() 591s args += extra_args 591s arg_string = ', '.join(args) 591s body = m.body[0].body 591s > template = body[-1].value.s 591s ^^^^^^^^^^^^^^^^ 591s E AttributeError: 'Constant' object has no attribute 's' 591s 591s ../../build.YR5/src/compyle/template.py:52: AttributeError 591s ________________________ test_template_with_extra_args _________________________ 591s 591s def test_template_with_extra_args(): 591s # Given 591s > extra = ExtraArgs('extra').function 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_template.py:113: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/template.py:24: in function 591s self._function = self._make_function() 591s ^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/template.py:28: in _make_function 591s src, annotations = self._get_code() 591s ^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 591s def _get_code(self): 591s m = ast.parse(dedent(inspect.getsource(self.template))) 591s argspec = getfullargspec(self.template) 591s args = argspec.args 591s if args[0] == 'self': 591s args = args[1:] 591s extra_args, extra_annotations = self.extra_args() 591s args += extra_args 591s arg_string = ', '.join(args) 591s body = m.body[0].body 591s > template = body[-1].value.s 591s ^^^^^^^^^^^^^^^^ 591s E AttributeError: 'Constant' object has no attribute 's' 591s 591s ../../build.YR5/src/compyle/template.py:52: AttributeError 591s ______________________ test_simple_assignment_expression _______________________ 591s 591s def test_simple_assignment_expression(): 591s # Given 591s src = dedent(''' 591s b = (2*a + 1)*(-a/1.5)%2 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s double a; 591s double b; 591s b = ((((2 * a) + 1) * (-a / 1.5)) % 2); 591s ''') 591s > assert code == expect.strip() 591s E AssertionError: assert 'double a;\nd...ne)) % None);' == 'double a;\nd.../ 1.5)) % 2);' 591s E 591s E double a; 591s E double b; 591s E - b = ((((2 * a) + 1) * (-a / 1.5)) % 2); 591s E ? ^ ^ ^^^ ^ 591s E + b = ((((None * a) + None) * (-a / None)) % None); 591s E ? ^^^^ ^^^^ ^^^^ ^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:35: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s double a; 591s double b; 591s b = ((((None * a) + None) * (-a / None)) % None); 591s _____________________ test_multiple_assignment_expressions _____________________ 591s 591s def test_multiple_assignment_expressions(): 591s # Given 591s src = dedent(''' 591s a = 21.5 591s b = (2*a + 1)*(a/1.5)%2 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s double a; 591s double b; 591s a = 21.5; 591s b = ((((2 * a) + 1) * (a / 1.5)) % 2); 591s ''') 591s > assert code == expect.strip() 591s E AssertionError: assert 'double a;\nd...ne)) % None);' == 'double a;\nd.../ 1.5)) % 2);' 591s E 591s E double a; 591s E double b; 591s E - a = 21.5; 591s E - b = ((((2 * a) + 1) * (a / 1.5)) % 2); 591s E + a = None; 591s E + b = ((((None * a) + None) * (a / None)) % None); 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:55: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s double a; 591s double b; 591s a = None; 591s b = ((((None * a) + None) * (a / None)) % None); 591s ________________________________ test_if_block _________________________________ 591s 591s def test_if_block(): 591s # Given 591s src = dedent(''' 591s a = 21.5 591s if a > 20: 591s b = a - 1 591s elif a < 20: 591s b = a + 1 591s else: 591s b = a 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s double a; 591s double b; 591s a = 21.5; 591s if ((a > 20)) { 591s b = (a - 1); 591s } 591s else { 591s if ((a < 20)) { 591s b = (a + 1); 591s } 591s else { 591s b = a; 591s } 591s } 591s ''') 591s > assert code.strip() == expect.strip() 591s E AssertionError: assert 'double a;\nd... a;\n }\n}' == 'double a;\nd... a;\n }\n}' 591s E 591s E double a; 591s E double b; 591s E - a = 21.5; 591s E + a = None; 591s E - if ((a > 20)) { 591s E ? ^^... 591s E 591s E ...Full output truncated (21 lines hidden), use '-vv' to show 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:90: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s double a; 591s double b; 591s a = None; 591s if ((a > None)) { 591s b = (a - None); 591s } 591s else { 591s if ((a < None)) { 591s b = (a + None); 591s } 591s else { 591s b = a; 591s } 591s } 591s 591s ______________________________ test_conditionals _______________________________ 591s 591s def test_conditionals(): 591s # Given 591s src = dedent(''' 591s if (x > 10 and x < 20) or not (x >= 10 and x <= 20): 591s y 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s double x; 591s double y; 591s if ((((x > 10) && (x < 20)) || !((x >= 10) && (x <= 20)))) { 591s y; 591s } 591s ''') 591s > assert code.strip() == expect.strip() 591s E AssertionError: assert 'double x;\nd... {\n y;\n}' == 'double x;\nd... {\n y;\n}' 591s E 591s E double x; 591s E double y; 591s E - if ((((x > 10) && (x < 20)) || !((x >= 10) && (x <= 20)))) { 591s E ? ^^ ^^ ^^ ^^ 591s E + if ((((x > None) && (x < None)) || !((x >= None) && (x <= None)))) { 591s E ? ^^^^ ^^^^ ^^^^ ^^^^ 591s E y; 591s E } 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:111: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s double x; 591s double y; 591s if ((((x > None) && (x < None)) || !((x >= None) && (x <= None)))) { 591s y; 591s } 591s 591s ____________________________ test_ternary_operator _____________________________ 591s 591s def test_ternary_operator(): 591s # Given 591s src = dedent(''' 591s y = 2.0 591s x = 1.0 if y >= 2.0 else 0.0 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s double x; 591s double y; 591s y = 2.0; 591s x = (y >= 2.0) ? 1.0 : 0.0; 591s ''') 591s > assert code.strip() == expect.strip() 591s E AssertionError: assert 'double x;\nd... None : None;' == 'double x;\nd... ? 1.0 : 0.0;' 591s E 591s E double x; 591s E double y; 591s E - y = 2.0; 591s E - x = (y >= 2.0) ? 1.0 : 0.0; 591s E + y = None; 591s E + x = (y >= None) ? None : None; 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:167: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s double x; 591s double y; 591s y = None; 591s x = (y >= None) ? None : None; 591s ____________________________ test_multiple_boolops _____________________________ 591s 591s def test_multiple_boolops(): 591s # Given 591s src = dedent(''' 591s if x % 2 == 0 or x % 2 == 1 or x > 0: 591s pass 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s double x; 591s if ((((x % 2) == 0) || ((x % 2) == 1) || (x > 0))) { 591s ; 591s } 591s ''') 591s > assert code.strip() == expect.strip() 591s E AssertionError: assert 'double x;\ni...) {\n ;\n}' == 'double x;\ni...) {\n ;\n}' 591s E 591s E double x; 591s E - if ((((x % 2) == 0) || ((x % 2) == 1) || (x > 0))) { 591s E ? ^ ^ ^ ^ ^ 591s E + if ((((x % None) == None) || ((x % None) == None) || (x > None))) { 591s E ? ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ 591s E ; 591s E } 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:187: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s double x; 591s if ((((x % None) == None) || ((x % None) == None) || (x > None))) { 591s ; 591s } 591s 591s __________________________ test_multiple_bitwise_ops ___________________________ 591s 591s def test_multiple_bitwise_ops(): 591s # Given 591s src = dedent(''' 591s x = 1 << 5 591s y = x >> 2 591s z = (x | y) ^ (x & y) 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s double x; 591s double y; 591s double z; 591s x = (1 << 5); 591s y = (x >> 2); 591s z = ((x | y) ^ (x & y)); 591s ''') 591s 591s > assert code.strip() == expect.strip() 591s E AssertionError: assert 'double x;\nd...) ^ (x & y));' == 'double x;\nd...) ^ (x & y));' 591s E 591s E double x; 591s E double y; 591s E double z; 591s E - x = (1 << 5); 591s E + x = (None << None); 591s E - y = (x >> 2);... 591s E 591s E ...Full output truncated (4 lines hidden), use '-vv' to show 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:211: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s double x; 591s double y; 591s double z; 591s x = (None << None); 591s y = (x >> None); 591s z = ((x | y) ^ (x & y)); 591s __________________________________ test_power __________________________________ 591s 591s def test_power(): 591s # Given 591s src = dedent(''' 591s 1.5*x**2 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s double x; 591s (1.5 * pow(x, 2)); 591s ''') 591s > assert code.strip() == expect.strip() 591s E AssertionError: assert 'double x;\n(...ow(x, None));' == 'double x;\n(...* pow(x, 2));' 591s E 591s E double x; 591s E - (1.5 * pow(x, 2)); 591s E + (None * pow(x, None)); 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:228: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s double x; 591s (None * pow(x, None)); 591s ____________________________ test_calling_function _____________________________ 591s 591s def test_calling_function(): 591s # Given 591s src = dedent(''' 591s sin(23.2 + 1) 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s sin((23.2 + 1)); 591s ''') 591s > assert code == expect.strip() 591s E AssertionError: assert 'sin((None + None));' == 'sin((23.2 + 1));' 591s E 591s E - sin((23.2 + 1)); 591s E + sin((None + None)); 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:256: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s sin((None + None)); 591s _______________________ test_calling_printf_with_string ________________________ 591s 591s def test_calling_printf_with_string(): 591s # Given 591s src = dedent(r''' 591s printf('%s %d %f\n', 'hello', 1, 2.0) 591s ''') 591s 591s # When 591s > code = py2c(src) 591s ^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:266: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/translator.py:65: in py2c 591s result = converter.convert(src) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:252: in convert 591s result = self.visit(code) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 591s return '\n'.join( 591s ../../build.YR5/src/compyle/translator.py:653: in 591s self.visit(item) for item in node.body 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:438: in visit_Expr 591s return self.visit(node.value) + ';' 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s node = Call(func=Name(id='printf', ctx=Load()), args=[Constant(value='%s %d %f\n', kind=None), ..., Constant(value=2.0, kind=None)], keywords=[]) 591s 591s def visit_Call(self, node): 591s if isinstance(node.func, ast.Name): 591s if node.func.id == 'address': 591s return '(&%s)' % self.visit(node.args[0]) 591s elif 'atomic' in node.func.id: 591s return self.render_atomic(node.func.id, node.args[0]) 591s elif node.func.id == 'cast': 591s return '(%s) (%s)' % (node.args[1].s, self.visit(node.args[0])) 591s else: 591s return '{func}({args})'.format( 591s func=node.func.id, 591s > args=', '.join(self.visit(x) for x in node.args) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s E TypeError: sequence item 0: expected str instance, NoneType found 591s 591s ../../build.YR5/src/compyle/translator.py:392: TypeError 591s ________________________________ test_subscript ________________________________ 591s 591s def test_subscript(): 591s # Given 591s src = dedent(''' 591s x[1] 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s double x; 591s x[1]; 591s ''') 591s > assert code == expect.strip() 591s E AssertionError: assert 'double x;\nx[None];' == 'double x;\nx[1];' 591s E 591s E double x; 591s E - x[1]; 591s E + x[None]; 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:289: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s double x; 591s x[None]; 591s _______________________ test_simple_function_with_return _______________________ 591s 591s def test_simple_function_with_return(): 591s # Given 591s src = dedent(''' 591s def f(x=0.0): 591s 'docstring' 591s y = x + 1 591s return y 591s ''') 591s 591s # When 591s > code = py2c(src) 591s ^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:329: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/translator.py:65: in py2c 591s result = converter.convert(src) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:252: in convert 591s result = self.visit(code) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 591s return '\n'.join( 591s ../../build.YR5/src/compyle/translator.py:653: in 591s self.visit(item) for item in node.body 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:585: in visit_FunctionDef 591s for item in self._remove_docstring(node.body)) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 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()))] 591s 591s def _remove_docstring(self, body): 591s if body and isinstance(body[0], ast.Expr) and \ 591s > isinstance(body[0].value, ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/translator.py:228: AttributeError 591s ___________________________ test_annotated_function ____________________________ 591s 591s def test_annotated_function(): 591s # Given/When 591s t = CConverter() 591s > code = t.parse_function(annotated_f) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:411: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/translator.py:307: in parse_function 591s code = self.convert(src) 591s ^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:252: in convert 591s result = self.visit(code) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 591s return '\n'.join( 591s ../../build.YR5/src/compyle/translator.py:653: in 591s self.visit(item) for item in node.body 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:584: in visit_FunctionDef 591s body = '\n'.join(self._indent_block(self.visit(item)) 591s ../../build.YR5/src/compyle/translator.py:584: in 591s body = '\n'.join(self._indent_block(self.visit(item)) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 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) 591s 591s def visit_Assign(self, node): 591s if len(node.targets) != 1: 591s self.error("Assignments can have only one target.", node) 591s left, right = node.targets[0], node.value 591s if isinstance(right, ast.Call) and \ 591s isinstance(right.func, ast.Name) and right.func.id == 'declare': 591s > if not isinstance(right.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/translator.py:344: AttributeError 591s _____________________________ test_py3_annotations _____________________________ 591s 591s @pytest.mark.skipif(sys.version_info < (3, 4), reason='Requires Python3') 591s def test_py3_annotations(): 591s # Given/When 591s from .py3_code import py3_f 591s t = CConverter() 591s > code = t.parse_function(py3_f) 591s ^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:429: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/translator.py:307: in parse_function 591s code = self.convert(src) 591s ^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:252: in convert 591s result = self.visit(code) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 591s return '\n'.join( 591s ../../build.YR5/src/compyle/translator.py:653: in 591s self.visit(item) for item in node.body 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:584: in visit_FunctionDef 591s body = '\n'.join(self._indent_block(self.visit(item)) 591s ../../build.YR5/src/compyle/translator.py:584: in 591s body = '\n'.join(self._indent_block(self.visit(item)) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 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) 591s 591s def visit_Assign(self, node): 591s if len(node.targets) != 1: 591s self.error("Assignments can have only one target.", node) 591s left, right = node.targets[0], node.value 591s if isinstance(right, ast.Call) and \ 591s isinstance(right.func, ast.Name) and right.func.id == 'declare': 591s > if not isinstance(right.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/translator.py:344: AttributeError 591s ______________________ test_calling_method_of_known_type _______________________ 591s 591s def test_calling_method_of_known_type(): 591s # Given 591s src = dedent(''' 591s obj.method(1, 2) 591s obj.meth() 591s ''') 591s known = {'obj': KnownType('SomeClass*', base_type='SomeClass')} 591s 591s # When 591s > code = py2c(src, known_types=known) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:452: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/translator.py:65: in py2c 591s result = converter.convert(src) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:252: in convert 591s result = self.visit(code) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 591s return '\n'.join( 591s ../../build.YR5/src/compyle/translator.py:653: in 591s self.visit(item) for item in node.body 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:438: in visit_Expr 591s return self.visit(node.value) + ';' 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 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=[]) 591s 591s def visit_Call(self, node): 591s if isinstance(node.func, ast.Name): 591s if node.func.id == 'address': 591s return '(&%s)' % self.visit(node.args[0]) 591s elif 'atomic' in node.func.id: 591s return self.render_atomic(node.func.id, node.args[0]) 591s elif node.func.id == 'cast': 591s return '(%s) (%s)' % (node.args[1].s, self.visit(node.args[0])) 591s else: 591s return '{func}({args})'.format( 591s func=node.func.id, 591s args=', '.join(self.visit(x) for x in node.args) 591s ) 591s elif isinstance(node.func, ast.Attribute): 591s if node.func.value.id in self._known_types: 591s name = node.func.value.id 591s cls = self._known_types[name].base_type 591s args = [name] + [self.visit(x) for x in node.args] 591s return '{func}({args})'.format( 591s func='%s_%s' % (cls, node.func.attr), 591s > args=', '.join(args) 591s ^^^^^^^^^^^^^^^ 591s E TypeError: sequence item 1: expected str instance, NoneType found 591s 591s ../../build.YR5/src/compyle/translator.py:401: TypeError 591s _________________ test_calling_method_of_known_type_in_method __________________ 591s 591s def test_calling_method_of_known_type_in_method(): 591s # Given 591s src = dedent(''' 591s class Foo(object): 591s def g(self): 591s pass 591s def f(self, obj): 591s obj.method(1, 2) 591s self.g() 591s ''') 591s 591s # When 591s known = {'obj': KnownType('SomeClass*', base_type='SomeClass')} 591s > code = py2c(src, known_types=known) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:475: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/translator.py:65: in py2c 591s result = converter.convert(src) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:252: in convert 591s result = self.visit(code) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 591s return '\n'.join( 591s ../../build.YR5/src/compyle/translator.py:653: in 591s self.visit(item) for item in node.body 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:417: in visit_ClassDef 591s code = [self.visit(x) for x in self._remove_docstring(node.body)] 591s ^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:585: in visit_FunctionDef 591s for item in self._remove_docstring(node.body)) 591s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 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=[]))] 591s 591s def _remove_docstring(self, body): 591s if body and isinstance(body[0], ast.Expr) and \ 591s > isinstance(body[0].value, ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/translator.py:228: AttributeError 591s __________________________________ test_while __________________________________ 591s 591s def test_while(): 591s # Given 591s src = dedent(''' 591s while x < 21: 591s do(x) 591s do1(x) 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s double x; 591s while ((x < 21)) { 591s do(x); 591s do1(x); 591s } 591s ''') 591s > assert code.strip() == expect.strip() 591s E AssertionError: assert 'double x;\nw... do1(x);\n}' == 'double x;\nw... do1(x);\n}' 591s E 591s E double x; 591s E - while ((x < 21)) { 591s E ? ^^ 591s E + while ((x < None)) { 591s E ? ^^^^ 591s E do(x); 591s E do1(x); 591s E } 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:568: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s double x; 591s while ((x < None)) { 591s do(x); 591s do1(x); 591s } 591s 591s ________________________ test_bool_true_false_and_none _________________________ 591s 591s def test_bool_true_false_and_none(): 591s # Given 591s src = dedent(''' 591s while True: 591s pass 591s if False: 591s pass 591s if x is None or x is not None: 591s pass 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s double x; 591s while (1) { 591s ; 591s } 591s 591s if (0) { 591s ; 591s } 591s 591s if (((x == NULL) || (x != NULL))) { 591s ; 591s } 591s ''') 591s > assert code.strip() == expect.strip() 591s E AssertionError: assert 'double x;\nw...) {\n ;\n}' == 'double x;\nw...) {\n ;\n}' 591s E 591s E double x; 591s E - while (1) { 591s E ? ^ 591s E + while (None) { 591s E ? ^^^^ 591s E ;... 591s E 591s E ...Full output truncated (15 lines hidden), use '-vv' to show 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:600: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s double x; 591s while (None) { 591s ; 591s } 591s 591s if (None) { 591s ; 591s } 591s 591s if (((x == None) || (x != None))) { 591s ; 591s } 591s 591s ___________________________________ test_for ___________________________________ 591s 591s def test_for(): 591s # Given 591s src = dedent(''' 591s for i in range(5): 591s do(i) 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s for (long i=0; i<5; i+=1) { 591s do(i); 591s } 591s ''') 591s > assert code.strip() == expect.strip() 591s E AssertionError: assert 'long __cpy_s... do(i);\n}' == 'for (long i=... do(i);\n}' 591s E 591s E + long __cpy_stop_0 = None; 591s E - for (long i=0; i<5; i+=1) { 591s E ? ^ 591s E + for (long i=0; i<__cpy_stop_0; i+=1) { 591s E ? ^^^^^^^^^^^^ 591s E do(i); 591s E } 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:619: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s long __cpy_stop_0 = None; 591s for (long i=0; i<__cpy_stop_0; i+=1) { 591s do(i); 591s } 591s 591s ________________________ test_for_with_decreasing_range ________________________ 591s 591s def test_for_with_decreasing_range(): 591s # Given 591s src = dedent(''' 591s for i in range(10, -1, -1): 591s pass 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s for (long i=10; i>-1; i+=-1) { 591s ; 591s } 591s ''') 591s > assert code.strip() == expect.strip() 591s E AssertionError: assert 'long __cpy_s... ;\n }\n}' == 'for (long i=...) {\n ;\n}' 591s E 591s E - for (long i=10; i>-1; i+=-1) { 591s E + long __cpy_stop_0 = -None; 591s E + long __cpy_step_0 = -None; 591s E + if (__cpy_step_0 < 0) { 591s E + for (long i=None; i>__cpy_stop_0; i+=__cpy_step_0) { 591s E - ;... 591s E 591s E ...Full output truncated (9 lines hidden), use '-vv' to show 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:672: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s long __cpy_stop_0 = -None; 591s long __cpy_step_0 = -None; 591s if (__cpy_step_0 < 0) { 591s for (long i=None; i>__cpy_stop_0; i+=__cpy_step_0) { 591s ; 591s } 591s } 591s else { 591s for (long i=None; i<__cpy_stop_0; i+=__cpy_step_0) { 591s ; 591s } 591s } 591s 591s ____________________________ test_for_with_declare _____________________________ 591s 591s def test_for_with_declare(): 591s # Given 591s src = dedent(''' 591s i = declare('int') 591s for i in range(5): 591s do(i) 591s ''') 591s 591s # When 591s > code = py2c(src) 591s ^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:684: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/translator.py:65: in py2c 591s result = converter.convert(src) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:252: in convert 591s result = self.visit(code) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 591s return '\n'.join( 591s ../../build.YR5/src/compyle/translator.py:653: in 591s self.visit(item) for item in node.body 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 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) 591s 591s def visit_Assign(self, node): 591s if len(node.targets) != 1: 591s self.error("Assignments can have only one target.", node) 591s left, right = node.targets[0], node.value 591s if isinstance(right, ast.Call) and \ 591s isinstance(right.func, ast.Name) and right.func.id == 'declare': 591s > if not isinstance(right.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/translator.py:344: AttributeError 591s ________________________________ test_two_fors _________________________________ 591s 591s def test_two_fors(): 591s # Given 591s src = dedent(''' 591s for i in range(5): 591s do(i) 591s for i in range(5): 591s pass 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s for (long i=0; i<5; i+=1) { 591s do(i); 591s } 591s 591s for (long i=0; i<5; i+=1) { 591s ; 591s } 591s ''') 591s > assert code.strip() == expect.strip() 591s E AssertionError: assert 'long __cpy_s...) {\n ;\n}' == 'for (long i=...) {\n ;\n}' 591s E 591s E + long __cpy_stop_0 = None; 591s E - for (long i=0; i<5; i+=1) { 591s E ? ^ 591s E + for (long i=0; i<__cpy_stop_0; i+=1) { 591s E ? ^^^^^^^^^^^^ 591s E do(i);... 591s E 591s E ...Full output truncated (9 lines hidden), use '-vv' to show 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:718: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s long __cpy_stop_0 = None; 591s for (long i=0; i<__cpy_stop_0; i+=1) { 591s do(i); 591s } 591s 591s long __cpy_stop_1 = None; 591s for (long i=0; i<__cpy_stop_1; i+=1) { 591s ; 591s } 591s 591s ____________________________ test_for_with_symbols _____________________________ 591s 591s def test_for_with_symbols(): 591s # Given 591s src = dedent(''' 591s n = declare('int') 591s n = 25 591s for i in range(n): 591s pass 591s for i in range(0, n+1, step()): 591s pass 591s ''') 591s 591s # When 591s > code = py2c(src) 591s ^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:733: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/translator.py:65: in py2c 591s result = converter.convert(src) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:252: in convert 591s result = self.visit(code) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 591s return '\n'.join( 591s ../../build.YR5/src/compyle/translator.py:653: in 591s self.visit(item) for item in node.body 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 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) 591s 591s def visit_Assign(self, node): 591s if len(node.targets) != 1: 591s self.error("Assignments can have only one target.", node) 591s left, right = node.targets[0], node.value 591s if isinstance(right, ast.Call) and \ 591s isinstance(right.func, ast.Name) and right.func.id == 'declare': 591s > if not isinstance(right.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/translator.py:344: AttributeError 591s _________________________ test_nested_for_with_symbols _________________________ 591s 591s def test_nested_for_with_symbols(): 591s # Given 591s src = dedent(''' 591s n = declare('int') 591s n = 25 591s for i in range(n): 591s for j in range(0, n+1, step()): 591s pass 591s for i in range(n+1): 591s for j in range(0, n+2, step()): 591s pass 591s ''') 591s 591s # When 591s > code = py2c(src) 591s ^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:774: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/translator.py:65: in py2c 591s result = converter.convert(src) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:252: in convert 591s result = self.visit(code) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 591s return '\n'.join( 591s ../../build.YR5/src/compyle/translator.py:653: in 591s self.visit(item) for item in node.body 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 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) 591s 591s def visit_Assign(self, node): 591s if len(node.targets) != 1: 591s self.error("Assignments can have only one target.", node) 591s left, right = node.targets[0], node.value 591s if isinstance(right, ast.Call) and \ 591s isinstance(right.func, ast.Name) and right.func.id == 'declare': 591s > if not isinstance(right.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/translator.py:344: AttributeError 591s ___________________________ test_with_two_functions ____________________________ 591s 591s def test_with_two_functions(): 591s # Given 591s src = dedent(''' 591s def f(): 591s n = declare('int') 591s n = 20 591s for i in range(n): 591s pass 591s for i in range(n): 591s pass 591s def g(): 591s n = declare('int') 591s n = 20 591s for i in range(n): 591s pass 591s for i in range(n): 591s pass 591s ''') 591s > code = py2c(src) 591s ^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:833: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/translator.py:65: in py2c 591s result = converter.convert(src) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:252: in convert 591s result = self.visit(code) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 591s return '\n'.join( 591s ../../build.YR5/src/compyle/translator.py:653: in 591s self.visit(item) for item in node.body 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:584: in visit_FunctionDef 591s body = '\n'.join(self._indent_block(self.visit(item)) 591s ../../build.YR5/src/compyle/translator.py:584: in 591s body = '\n'.join(self._indent_block(self.visit(item)) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 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) 591s 591s def visit_Assign(self, node): 591s if len(node.targets) != 1: 591s self.error("Assignments can have only one target.", node) 591s left, right = node.targets[0], node.value 591s if isinstance(right, ast.Call) and \ 591s isinstance(right.func, ast.Name) and right.func.id == 'declare': 591s > if not isinstance(right.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/translator.py:344: AttributeError 591s _________________________ test_for_with_break_continue _________________________ 591s 591s def test_for_with_break_continue(): 591s # Given 591s src = dedent(''' 591s for i in range(10): 591s if i%7 == 0: 591s break 591s if i%2 == 0: 591s continue 591s do(i) 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s for (long i=0; i<10; i+=1) { 591s if (((i % 7) == 0)) { 591s break; 591s } 591s if (((i % 2) == 0)) { 591s continue; 591s } 591s do(i); 591s } 591s ''') 591s > assert code.strip() == expect.strip() 591s E AssertionError: assert 'long __cpy_s... do(i);\n}' == 'for (long i=... do(i);\n}' 591s E 591s E + long __cpy_stop_0 = None; 591s E - for (long i=0; i<10; i+=1) { 591s E ? ^ 591s E + for (long i=0; i<__cpy_stop_0; i+=1) { 591s E ? ^^^^^^^^^^^ 591s E - if (((i % 7) == 0)) {... 591s E 591s E ...Full output truncated (13 lines hidden), use '-vv' to show 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:895: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s long __cpy_stop_0 = None; 591s for (long i=0; i<__cpy_stop_0; i+=1) { 591s if (((i % None) == None)) { 591s break; 591s } 591s if (((i % None) == None)) { 591s continue; 591s } 591s do(i); 591s } 591s 591s ____________________________ test_attribute_access _____________________________ 591s 591s def test_attribute_access(): 591s # Given 591s src = dedent(''' 591s self.x = 1 591s ''') 591s 591s # When 591s code = py2c(src) 591s 591s # Then 591s expect = dedent(''' 591s double self; 591s self->x = 1; 591s ''') 591s 591s > assert code.strip() == expect.strip() 591s E AssertionError: assert 'double self;...lf->x = None;' == 'double self;\nself->x = 1;' 591s E 591s E double self; 591s E - self->x = 1; 591s E ? ^ 591s E + self->x = None; 591s E ? ^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:975: AssertionError 591s ----------------------------- Captured stdout call ----------------------------- 591s double self; 591s self->x = None; 591s _____________________ test_declare_call_declares_variable ______________________ 591s 591s def test_declare_call_declares_variable(): 591s # Given 591s src = dedent(''' 591s x = declare('int') 591s x += 1 591s ''') 591s 591s # When 591s > code = py2c(src) 591s ^^^^^^^^^ 591s 591s ../../build.YR5/src/compyle/tests/test_translator.py:986: 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s ../../build.YR5/src/compyle/translator.py:65: in py2c 591s result = converter.convert(src) 591s ^^^^^^^^^^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:252: in convert 591s result = self.visit(code) 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 591s return '\n'.join( 591s ../../build.YR5/src/compyle/translator.py:653: in 591s self.visit(item) for item in node.body 591s ^^^^^^^^^^^^^^^^ 591s /usr/lib/python3.14/ast.py:506: in visit 591s return visitor(node) 591s ^^^^^^^^^^^^^ 591s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 591s 591s self = 591s 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) 591s 591s def visit_Assign(self, node): 591s if len(node.targets) != 1: 591s self.error("Assignments can have only one target.", node) 591s left, right = node.targets[0], node.value 591s if isinstance(right, ast.Call) and \ 591s isinstance(right.func, ast.Name) and right.func.id == 'declare': 591s > if not isinstance(right.args[0], ast.Str): 591s ^^^^^^^ 591s E AttributeError: module 'ast' has no attribute 'Str' 591s 591s ../../build.YR5/src/compyle/translator.py:344: AttributeError 592s _____________________________ test_declare_matrix ______________________________ 592s 592s def test_declare_matrix(): 592s # Given 592s src = dedent(''' 592s x = declare('matrix((3,))') 592s do(x[0]) 592s ''') 592s 592s # When 592s > code = py2c(src) 592s ^^^^^^^^^ 592s 592s ../../build.YR5/src/compyle/tests/test_translator.py:1004: 592s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 592s ../../build.YR5/src/compyle/translator.py:65: in py2c 592s result = converter.convert(src) 592s ^^^^^^^^^^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:252: in convert 592s result = self.visit(code) 592s ^^^^^^^^^^^^^^^^ 592s /usr/lib/python3.14/ast.py:506: in visit 592s return visitor(node) 592s ^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 592s return '\n'.join( 592s ../../build.YR5/src/compyle/translator.py:653: in 592s self.visit(item) for item in node.body 592s ^^^^^^^^^^^^^^^^ 592s /usr/lib/python3.14/ast.py:506: in visit 592s return visitor(node) 592s ^^^^^^^^^^^^^ 592s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 592s 592s self = 592s 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) 592s 592s def visit_Assign(self, node): 592s if len(node.targets) != 1: 592s self.error("Assignments can have only one target.", node) 592s left, right = node.targets[0], node.value 592s if isinstance(right, ast.Call) and \ 592s isinstance(right.func, ast.Name) and right.func.id == 'declare': 592s > if not isinstance(right.args[0], ast.Str): 592s ^^^^^^^ 592s E AttributeError: module 'ast' has no attribute 'Str' 592s 592s ../../build.YR5/src/compyle/translator.py:344: AttributeError 592s ________________ test_declare_call_declares_multiple_variables _________________ 592s 592s def test_declare_call_declares_multiple_variables(): 592s # Given 592s src = dedent(''' 592s x, y = declare('int', 2) 592s u, v = declare('matrix(3)', 2) 592s A = declare('matrix((2,2), "long")') 592s ''') 592s 592s # When 592s > code = py2c(src) 592s ^^^^^^^^^ 592s 592s ../../build.YR5/src/compyle/tests/test_translator.py:1055: 592s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 592s ../../build.YR5/src/compyle/translator.py:65: in py2c 592s result = converter.convert(src) 592s ^^^^^^^^^^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:252: in convert 592s result = self.visit(code) 592s ^^^^^^^^^^^^^^^^ 592s /usr/lib/python3.14/ast.py:506: in visit 592s return visitor(node) 592s ^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 592s return '\n'.join( 592s ../../build.YR5/src/compyle/translator.py:653: in 592s self.visit(item) for item in node.body 592s ^^^^^^^^^^^^^^^^ 592s /usr/lib/python3.14/ast.py:506: in visit 592s return visitor(node) 592s ^^^^^^^^^^^^^ 592s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 592s 592s self = 592s 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) 592s 592s def visit_Assign(self, node): 592s if len(node.targets) != 1: 592s self.error("Assignments can have only one target.", node) 592s left, right = node.targets[0], node.value 592s if isinstance(right, ast.Call) and \ 592s isinstance(right.func, ast.Name) and right.func.id == 'declare': 592s > if not isinstance(right.args[0], ast.Str): 592s ^^^^^^^ 592s E AttributeError: module 'ast' has no attribute 'Str' 592s 592s ../../build.YR5/src/compyle/translator.py:344: AttributeError 592s __________________________________ test_class __________________________________ 592s 592s def test_class(): 592s # Given 592s src = dedent(''' 592s class Foo(object): 592s def g(self, x=0.0): 592s return x*2.0 592s def f(self, x=0.0): 592s y = x + 1 592s do(self.a, x) 592s z = self.g(y) 592s ''') 592s 592s # When 592s code = py2c(src) 592s 592s # Then 592s expect = dedent(''' 592s double Foo_g(Foo* self, double x) 592s { 592s return (x * 2.0); 592s } 592s 592s void Foo_f(Foo* self, double x) 592s { 592s double y; 592s double z; 592s y = (x + 1); 592s do(self->a, x); 592s z = Foo_g(self, y); 592s } 592s ''') 592s > assert code.strip() == expect.strip() 592s E AssertionError: assert 'double Foo_g...(self, y);\n}' == 'double Foo_g...(self, y);\n}' 592s E 592s E Skipping 42 identical leading characters in diff, use -v to show 592s E - turn (x * 2.0); 592s E ? ^^^ 592s E + turn (x * None); 592s E ? ^^^^ 592s E }... 592s E 592s E ...Full output truncated (12 lines hidden), use '-vv' to show 592s 592s ../../build.YR5/src/compyle/tests/test_translator.py:1097: AssertionError 592s ----------------------------- Captured stdout call ----------------------------- 592s double Foo_g(Foo* self, double x) 592s { 592s return (x * None); 592s } 592s 592s void Foo_f(Foo* self, double x) 592s { 592s double y; 592s double z; 592s y = (x + None); 592s do(self->a, x); 592s z = Foo_g(self, y); 592s } 592s 592s _____________________________ test_wrapping_class ______________________________ 592s 592s def test_wrapping_class(): 592s # Given 592s class Dummy(object): 592s '''Class Docstring''' 592s 592s def __init__(self, x=0, f=0.0, s=''): 592s "Constructor docstring" 592s self.x = x 592s self.f = f 592s self.s = s 592s self._private = 1 592s 592s def method(self): 592s '''Method docstring. 592s ''' 592s pass 592s 592s obj = Dummy() 592s 592s # When 592s c = CConverter() 592s > result = c.parse_instance(obj) 592s ^^^^^^^^^^^^^^^^^^^^^ 592s 592s ../../build.YR5/src/compyle/tests/test_translator.py:1191: 592s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 592s ../../build.YR5/src/compyle/translator.py:297: in parse_instance 592s code += self.convert(src, ignore_methods) 592s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:252: in convert 592s result = self.visit(code) 592s ^^^^^^^^^^^^^^^^ 592s /usr/lib/python3.14/ast.py:506: in visit 592s return visitor(node) 592s ^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 592s return '\n'.join( 592s ../../build.YR5/src/compyle/translator.py:653: in 592s self.visit(item) for item in node.body 592s ^^^^^^^^^^^^^^^^ 592s /usr/lib/python3.14/ast.py:506: in visit 592s return visitor(node) 592s ^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:417: in visit_ClassDef 592s code = [self.visit(x) for x in self._remove_docstring(node.body)] 592s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 592s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 592s 592s self = 592s 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=[])] 592s 592s def _remove_docstring(self, body): 592s if body and isinstance(body[0], ast.Expr) and \ 592s > isinstance(body[0].value, ast.Str): 592s ^^^^^^^ 592s E AttributeError: module 'ast' has no attribute 'Str' 592s 592s ../../build.YR5/src/compyle/translator.py:228: AttributeError 592s ___________________ test_wrapping_class_with_ignore_methods ____________________ 592s 592s def test_wrapping_class_with_ignore_methods(): 592s # Given 592s class Dummy1(object): 592s '''Class Docstring''' 592s 592s def f(self): 592s pass 592s 592s def not_me(self): 592s pass 592s 592s obj = Dummy1() 592s 592s # When 592s c = CConverter() 592s > result = c.parse_instance(obj, ignore_methods=['not_me']) 592s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 592s 592s ../../build.YR5/src/compyle/tests/test_translator.py:1232: 592s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 592s ../../build.YR5/src/compyle/translator.py:297: in parse_instance 592s code += self.convert(src, ignore_methods) 592s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:252: in convert 592s result = self.visit(code) 592s ^^^^^^^^^^^^^^^^ 592s /usr/lib/python3.14/ast.py:506: in visit 592s return visitor(node) 592s ^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 592s return '\n'.join( 592s ../../build.YR5/src/compyle/translator.py:653: in 592s self.visit(item) for item in node.body 592s ^^^^^^^^^^^^^^^^ 592s /usr/lib/python3.14/ast.py:506: in visit 592s return visitor(node) 592s ^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:417: in visit_ClassDef 592s code = [self.visit(x) for x in self._remove_docstring(node.body)] 592s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 592s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 592s 592s self = 592s 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=[])] 592s 592s def _remove_docstring(self, body): 592s if body and isinstance(body[0], ast.Expr) and \ 592s > isinstance(body[0].value, ast.Str): 592s ^^^^^^^ 592s E AttributeError: module 'ast' has no attribute 'Str' 592s 592s ../../build.YR5/src/compyle/translator.py:228: AttributeError 592s __________________________ test_cuda_local_conversion __________________________ 592s 592s def test_cuda_local_conversion(): 592s @annotate(xc='ldoublep', yc='lintp') 592s def knl(xc, yc): 592s xc[LID_0] = 1 592s yc[LID_0] = 1 592s 592s # When 592s converter = CUDAConverter() 592s code = converter.parse(knl) 592s 592s # Then 592s expect_1 = dedent(''' 592s WITHIN_KERNEL void knl(int size_xc, int size_yc) 592s { 592s extern LOCAL_MEM float shared_buff[]; 592s double* xc = (double*) shared_buff; 592s int* yc = (int*) &xc[size_xc]; 592s xc[LID_0] = 1; 592s yc[LID_0] = 1; 592s } 592s ''') 592s 592s expect_2 = dedent(''' 592s WITHIN_KERNEL void knl(int size_xc, int size_yc) 592s { 592s extern LOCAL_MEM float shared_buff[]; 592s int* yc = (int*) shared_buff; 592s double* xc = (double*) &yc[size_yc]; 592s xc[LID_0] = 1; 592s yc[LID_0] = 1; 592s } 592s ''') 592s 592s > assert code.strip() == expect_1.strip() or code.strip() == expect_2.strip() 592s E AssertionError: assert ('WITHIN_KERNE...0] = None;\n}' == 'WITHIN_KERNE...ID_0] = 1;\n}' 592s E 592s E Skipping 174 identical leading characters in diff, use -v to show 592s E - [LID_0] = 1; 592s E ? ^ 592s E + [LID_0] = None; 592s E ? ^^^^ 592s E - yc[LID_0] = 1;... 592s E 592s E ...Full output truncated (4 lines hidden), use '-vv' to show or 'WITHIN_KERNE...0] = None;\n}' == 'WITHIN_KERNE...ID_0] = 1;\n}' 592s E 592s E Skipping 87 identical leading characters in diff, use -v to show 592s E ff[]; 592s E - int* yc = (int*) shared_buff; 592s E - double* xc = (double*) &yc[size_yc]; 592s E ? ---- ^^ ^^^ 592s E + double* xc = (double*) shared_buff;... 592s E 592s E ...Full output truncated (11 lines hidden), use '-vv' to show) 592s 592s ../../build.YR5/src/compyle/tests/test_translator.py:1333: AssertionError 592s ________________________ test_handles_parsing_functions ________________________ 592s 592s def test_handles_parsing_functions(): 592s # Given 592s def f(x=1.0): 592s return x + 1 592s 592s # When 592s t = CConverter() 592s code = t.parse_function(f) 592s 592s # Then 592s expect = dedent(''' 592s double f(double x) 592s { 592s return (x + 1); 592s } 592s ''') 592s > assert code.strip() == expect.strip() 592s E AssertionError: assert 'double f(dou...x + None);\n}' == 'double f(dou...n (x + 1);\n}' 592s E 592s E double f(double x) 592s E { 592s E - return (x + 1); 592s E ? ^ 592s E + return (x + None); 592s E ? ^^^^ 592s E } 592s 592s ../../build.YR5/src/compyle/tests/test_translator.py:1352: AssertionError 592s _______________________________ test_cast_works ________________________________ 592s 592s def test_cast_works(): 592s # Given 592s def f(x=1.0): 592s return cast(x, "float") 592s 592s # When 592s t = OpenCLConverter() 592s > code = t.parse_function(f) 592s ^^^^^^^^^^^^^^^^^^^ 592s 592s ../../build.YR5/src/compyle/tests/test_translator.py:1467: 592s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 592s ../../build.YR5/src/compyle/translator.py:307: in parse_function 592s code = self.convert(src) 592s ^^^^^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:252: in convert 592s result = self.visit(code) 592s ^^^^^^^^^^^^^^^^ 592s /usr/lib/python3.14/ast.py:506: in visit 592s return visitor(node) 592s ^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:652: in visit_Module 592s return '\n'.join( 592s ../../build.YR5/src/compyle/translator.py:653: in 592s self.visit(item) for item in node.body 592s ^^^^^^^^^^^^^^^^ 592s /usr/lib/python3.14/ast.py:506: in visit 592s return visitor(node) 592s ^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:584: in visit_FunctionDef 592s body = '\n'.join(self._indent_block(self.visit(item)) 592s ../../build.YR5/src/compyle/translator.py:584: in 592s body = '\n'.join(self._indent_block(self.visit(item)) 592s ^^^^^^^^^^^^^^^^ 592s /usr/lib/python3.14/ast.py:506: in visit 592s return visitor(node) 592s ^^^^^^^^^^^^^ 592s ../../build.YR5/src/compyle/translator.py:692: in visit_Return 592s return 'return %s;' % (self.visit(node.value)) 592s ^^^^^^^^^^^^^^^^^^^^^^ 592s /usr/lib/python3.14/ast.py:506: in visit 592s return visitor(node) 592s ^^^^^^^^^^^^^ 592s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 592s 592s self = 592s node = Call(func=Name(id='cast', ctx=Load()), args=[Name(id='x', ctx=Load()), Constant(value='float', kind=None)], keywords=[]) 592s 592s def visit_Call(self, node): 592s if isinstance(node.func, ast.Name): 592s if node.func.id == 'address': 592s return '(&%s)' % self.visit(node.args[0]) 592s elif 'atomic' in node.func.id: 592s return self.render_atomic(node.func.id, node.args[0]) 592s elif node.func.id == 'cast': 592s > return '(%s) (%s)' % (node.args[1].s, self.visit(node.args[0])) 592s ^^^^^^^^^^^^^^ 592s E AttributeError: 'Constant' object has no attribute 's' 592s 592s ../../build.YR5/src/compyle/translator.py:388: AttributeError 592s =============================== warnings summary =============================== 592s compyle/tests/test_array.py: 23 warnings 592s /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. 592s lambda: self._prg.build(options_bytes, devices), 592s 592s compyle/tests/test_array.py::test_trapz[cython] 592s compyle/tests/test_array.py::test_trapz[opencl] 592s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/tests/test_array.py:452: DeprecationWarning: `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`. 592s assert(array.trapz(y) == np.trapz(yn)) 592s 592s compyle/tests/test_array.py::test_trapz[cython] 592s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/tests/test_array.py:453: DeprecationWarning: `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`. 592s assert(array.trapz(y, x,) == np.trapz(yn, xn)) 592s 592s compyle/tests/test_array.py::test_trapz[cython] 592s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/tests/test_array.py:454: DeprecationWarning: `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`. 592s assert(array.trapz(y, dx=3) == np.trapz(yn, dx=3)) 592s 592s compyle/tests/test_jit.py::TestAnnotationHelper::test_non_jit_call_as_call_arg 592s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/jit.py:202: UserWarning: 592s In code in line 5: 592s 592s return g(sin(a)) 592s ^ 592s 592s 592s Function called is not marked by the annotate decorator. Argument 592s type defaulting to 'double'. If the type is not 'double', store 592s the value in a variable of appropriate type and use the variable 592s 592s warnings.warn(msg) 592s 592s compyle/tests/test_jit.py::TestAnnotationHelper::test_non_jit_call_in_return 592s /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/jit.py:202: UserWarning: 592s In code in line 5: 592s 592s return sin(a) 592s ^ 592s 592s 592s Function called is not marked by the annotate decorator. Argument 592s type defaulting to 'double'. If the type is not 'double', store 592s the value in a variable of appropriate type and use the variable 592s 592s warnings.warn(msg) 592s 592s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 592s =========================== short test summary info ============================ 592s FAILED ../../build.YR5/src/compyle/tests/test_array.py::test_remove[opencl] 592s FAILED ../../build.YR5/src/compyle/tests/test_array.py::test_align_multiple[cython] 592s FAILED ../../build.YR5/src/compyle/tests/test_array.py::test_align_multiple[opencl] 592s FAILED ../../build.YR5/src/compyle/tests/test_array.py::test_sort_by_keys[cython] 592s FAILED ../../build.YR5/src/compyle/tests/test_array.py::test_radix_sort_by_keys 592s FAILED ../../build.YR5/src/compyle/tests/test_array.py::test_sort_by_keys_with_output[cython] 592s FAILED ../../build.YR5/src/compyle/tests/test_array.py::test_diff[int32-opencl] 592s FAILED ../../build.YR5/src/compyle/tests/test_array.py::test_diff[float32-opencl] 592s FAILED ../../build.YR5/src/compyle/tests/test_array.py::test_diff[float64-opencl] 592s FAILED ../../build.YR5/src/compyle/tests/test_array.py::test_trapz[opencl] - ... 592s FAILED ../../build.YR5/src/compyle/tests/test_array.py::test_take_bool[opencl-int32] 592s FAILED ../../build.YR5/src/compyle/tests/test_array.py::test_take_bool[opencl-float32] 592s FAILED ../../build.YR5/src/compyle/tests/test_array.py::test_take_bool[opencl-float64] 592s FAILED ../../build.YR5/src/compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_function_with_annotation 592s FAILED ../../build.YR5/src/compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_declare 592s FAILED ../../build.YR5/src/compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_method_with_matrix 592s FAILED ../../build.YR5/src/compyle/tests/test_cython_generator.py::TestCythonCodeGenerator::test_python3_annotation 592s FAILED ../../build.YR5/src/compyle/tests/test_jit.py::TestAnnotationHelper::test_cast_return_type 592s FAILED ../../build.YR5/src/compyle/tests/test_jit.py::TestAnnotationHelper::test_declare_multiple_variables 592s FAILED ../../build.YR5/src/compyle/tests/test_jit.py::TestAnnotationHelper::test_variable_as_call_arg 592s FAILED ../../build.YR5/src/compyle/tests/test_jit.py::TestAnnotationHelper::test_variable_as_call_arg_nonjit 592s FAILED ../../build.YR5/src/compyle/tests/test_low_level.py::TestKernel::test_kernel_with_local_memory_opencl 592s FAILED ../../build.YR5/src/compyle/tests/test_low_level.py::TestKernel::test_simple_kernel_opencl 592s FAILED ../../build.YR5/src/compyle/tests/test_low_level.py::TestCython::test_cython_code_with_return_and_nested_call 592s FAILED ../../build.YR5/src/compyle/tests/test_low_level.py::TestCython::test_cython_with_externs 592s FAILED ../../build.YR5/src/compyle/tests/test_template.py::test_simple_template 592s FAILED ../../build.YR5/src/compyle/tests/test_template.py::test_that_source_code_is_available 592s FAILED ../../build.YR5/src/compyle/tests/test_template.py::test_template_usable_in_code_generation 592s FAILED ../../build.YR5/src/compyle/tests/test_template.py::test_template_with_extra_args 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_simple_assignment_expression 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_multiple_assignment_expressions 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_if_block - ... 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_conditionals 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_ternary_operator 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_multiple_boolops 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_multiple_bitwise_ops 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_power - Ass... 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_calling_function 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_calling_printf_with_string 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_subscript 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_simple_function_with_return 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_annotated_function 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_py3_annotations 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_calling_method_of_known_type 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_calling_method_of_known_type_in_method 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_while - Ass... 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_bool_true_false_and_none 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_for - Asser... 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_for_with_decreasing_range 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_for_with_declare 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_two_fors - ... 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_for_with_symbols 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_nested_for_with_symbols 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_with_two_functions 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_for_with_break_continue 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_attribute_access 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_declare_call_declares_variable 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_declare_matrix 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_declare_call_declares_multiple_variables 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_class - Ass... 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_wrapping_class 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_wrapping_class_with_ignore_methods 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_cuda_local_conversion 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_handles_parsing_functions 592s FAILED ../../build.YR5/src/compyle/tests/test_translator.py::test_cast_works 592s = 65 failed, 201 passed, 57 skipped, 3 deselected, 1 xfailed, 29 warnings in 197.31s (0:03:17) = 593s E: pybuild pybuild:483: test: plugin distutils failed with: exit code=1: cd /tmp/autopkgtest.ruUQ6J/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.ruUQ6J/build.YR5/src/compyle/tests/test_cuda.py --ignore=/tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/tests/test_parallel.py /tmp/autopkgtest.ruUQ6J/build.YR5/src/compyle/tests 593s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.13 3.14" returned exit code 13 593s make: *** [/tmp/bjdRWyXfQe/run:4: pybuild-autopkgtest] Error 25 593s pybuild-autopkgtest: error: /tmp/bjdRWyXfQe/run pybuild-autopkgtest returned exit code 2 593s autopkgtest [16:38:37]: test pybuild-autopkgtest: -----------------------] 594s pybuild-autopkgtest FAIL non-zero exit status 25 594s autopkgtest [16:38:38]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 594s autopkgtest [16:38:38]: @@@@@@@@@@@@@@@@@@@@ summary 594s pybuild-autopkgtest FAIL non-zero exit status 25