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