numexpr: Test failures on PyPy3.10: mostly `ValueError: ex_uses_vml parameter is required`
When running the test suite on PyPy3.10 7.3.13, I’m getting the following failures:
>>>> numexpr.test()
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Numexpr version: 2.8.8.dev1
NumPy version: 1.26.2
Python version: 3.10.13 (f1607341da97ff5a1e93430b6e8c4af0ad1aa019, Nov 21 2023, 14:47:09)
[PyPy 7.3.13 with GCC 13.2.1 20230826]
Platform: linux-x86_64-#1 SMP PREEMPT_DYNAMIC Tue Nov 28 20:10:18 -00 2023
CPU vendor:
CPU model:
CPU clock speed: MHz
VML available? False
Number of threads used by default: 8 (out of 12 detected cores)
Maximum number of threads: 64
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
....E.EEEE...............E.EEEE...........E.E...................E...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
======================================================================
ERROR: test_rational_expr (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/numexpr/.venv/lib/pypy3.10/site-packages/numexpr/tests/test_numexpr.py", line 76, in test_rational_expr
y = func(a, b)
ValueError: ex_uses_vml parameter is required
======================================================================
ERROR: test_refcount (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/numexpr/.venv/lib/pypy3.10/site-packages/numexpr/tests/test_numexpr.py", line 314, in test_refcount
assert sys.getrefcount(a) == 2
AttributeError: module 'sys' has no attribute 'getrefcount'
======================================================================
ERROR: test_simple (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/numexpr/.venv/lib/pypy3.10/site-packages/numexpr/tests/test_numexpr.py", line 56, in test_simple
x = func(array([1., 2, 3]), array([4., 5, 6]), array([7., 8, 9]))
ValueError: ex_uses_vml parameter is required
======================================================================
ERROR: test_simple_expr (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/numexpr/.venv/lib/pypy3.10/site-packages/numexpr/tests/test_numexpr.py", line 68, in test_simple_expr
y = func(x)
ValueError: ex_uses_vml parameter is required
======================================================================
ERROR: test_simple_expr_small_array (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/numexpr/.venv/lib/pypy3.10/site-packages/numexpr/tests/test_numexpr.py", line 62, in test_simple_expr_small_array
y = func(x)
ValueError: ex_uses_vml parameter is required
======================================================================
ERROR: test_rational_expr (numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/numexpr/.venv/lib/pypy3.10/site-packages/numexpr/tests/test_numexpr.py", line 76, in test_rational_expr
y = func(a, b)
ValueError: ex_uses_vml parameter is required
======================================================================
ERROR: test_refcount (numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/numexpr/.venv/lib/pypy3.10/site-packages/numexpr/tests/test_numexpr.py", line 314, in test_refcount
assert sys.getrefcount(a) == 2
AttributeError: module 'sys' has no attribute 'getrefcount'
======================================================================
ERROR: test_simple (numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/numexpr/.venv/lib/pypy3.10/site-packages/numexpr/tests/test_numexpr.py", line 56, in test_simple
x = func(array([1., 2, 3]), array([4., 5, 6]), array([7., 8, 9]))
ValueError: ex_uses_vml parameter is required
======================================================================
ERROR: test_simple_expr (numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/numexpr/.venv/lib/pypy3.10/site-packages/numexpr/tests/test_numexpr.py", line 68, in test_simple_expr
y = func(x)
ValueError: ex_uses_vml parameter is required
======================================================================
ERROR: test_simple_expr_small_array (numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/numexpr/.venv/lib/pypy3.10/site-packages/numexpr/tests/test_numexpr.py", line 62, in test_simple_expr_small_array
y = func(x)
ValueError: ex_uses_vml parameter is required
======================================================================
ERROR: test_all_scalar (numexpr.tests.test_numexpr.test_evaluate)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/numexpr/.venv/lib/pypy3.10/site-packages/numexpr/tests/test_numexpr.py", line 495, in test_all_scalar
assert_equal(expr(a, b), 2 * a + 3 * b)
ValueError: ex_uses_vml parameter is required
======================================================================
ERROR: test_broadcasting (numexpr.tests.test_numexpr.test_evaluate)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/numexpr/.venv/lib/pypy3.10/site-packages/numexpr/tests/test_numexpr.py", line 488, in test_broadcasting
assert_array_equal(expr(a, c), 2.0 * a + 3.0 * c)
ValueError: ex_uses_vml parameter is required
======================================================================
ERROR: test_run (numexpr.tests.test_numexpr.test_evaluate)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/numexpr/.venv/lib/pypy3.10/site-packages/numexpr/tests/test_numexpr.py", line 501, in test_run
assert_array_equal(expr(a, b), expr.run(a, b))
ValueError: ex_uses_vml parameter is required
----------------------------------------------------------------------
Ran 5536 tests in 11.683s
FAILED (errors=13)
<unittest.runner.TextTestResult run=5536 errors=13 failures=0>
This is on 05bb401afc1f8fd84e45f0297d3a0b87e6a79b30 but I’ve seen roughly the same result on 2.8.7.
CC @mattip
About this issue
- Original URL
- State: closed
- Created 7 months ago
- Comments: 28 (22 by maintainers)
Yes, I’ve just confirmed that all tests pass now.
It is intentional. PyPy does not use a refcounting garbage collector. You are correct that it is hard to find information about that difference, I will add it to the garbage collection strategies section about differences between PyPy and CPython.