As a curiousity, we tried 2 tests present in Numba Framework on the Raspberry Pi 2. The Jitclass test is OK.
However, the cfunc test fails:
(.venv) guillaume@raspberrypi:~ $ python3 -m numba.tests.test_cfunc
..EE.s....sss
======================================================================
ERROR: test_numba_carray (__main__.TestCArray.test_numba_carray)
Test Numba-compiled carray() against pure Python carray()
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/guillaume/numba/numba/core/lowering.py", line 511, in lower_inst
impl = self.context.get_function('static_setitem', signature)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 556, in get_function
return self.get_function(fn, sig, _firstcall=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 558, in get_function
raise NotImplementedError("No definition for lowering %s%s" % (key, sig))
NotImplementedError: No definition for lowering static_setitem(Array(float32, 1, 'C', False, aligned=True), slice<a:b>, UniTuple(int32, 2)) -> none
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/guillaume/numba/numba/tests/test_cfunc.py", line 294, in test_numba_carray
self.check_numba_carray_farray(carray_usecase, carray_dtype_usecase)
File "/home/guillaume/numba/numba/tests/test_cfunc.py", line 270, in check_numba_carray_farray
f = cfunc(sig)(pyfunc)
^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/decorators.py", line 275, in wrapper
res.compile()
File "/home/guillaume/numba/numba/core/compiler_lock.py", line 35, in _acquire_compile_lock
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/ccallback.py", line 68, in compile
cres = self._compile_uncached()
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/ccallback.py", line 82, in _compile_uncached
return self._compiler.compile(sig.args, sig.return_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/dispatcher.py", line 80, in compile
status, retval = self._compile_cached(args, return_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/dispatcher.py", line 94, in _compile_cached
retval = self._compile_core(args, return_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/dispatcher.py", line 107, in _compile_core
cres = compiler.compile_extra(self.targetdescr.typing_context,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/compiler.py", line 739, in compile_extra
return pipeline.compile_extra(func)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/compiler.py", line 439, in compile_extra
return self._compile_bytecode()
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/compiler.py", line 505, in _compile_bytecode
return self._compile_core()
^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/compiler.py", line 481, in _compile_core
raise e
File "/home/guillaume/numba/numba/core/compiler.py", line 473, in _compile_core
pm.run(self.state)
File "/home/guillaume/numba/numba/core/compiler_machinery.py", line 363, in run
raise e
File "/home/guillaume/numba/numba/core/compiler_machinery.py", line 356, in run
self._runPass(idx, pass_inst, state)
File "/home/guillaume/numba/numba/core/compiler_lock.py", line 35, in _acquire_compile_lock
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/compiler_machinery.py", line 311, in _runPass
mutated |= check(pss.run_pass, internal_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/compiler_machinery.py", line 272, in check
mangled = func(compiler_state)
^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/typed_passes.py", line 468, in run_pass
lower.lower()
File "/home/guillaume/numba/numba/core/lowering.py", line 193, in lower
self.lower_normal_function(self.fndesc)
File "/home/guillaume/numba/numba/core/lowering.py", line 232, in lower_normal_function
entry_block_tail = self.lower_function_body()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/lowering.py", line 262, in lower_function_body
self.lower_block(block)
File "/home/guillaume/numba/numba/core/lowering.py", line 276, in lower_block
self.lower_inst(inst)
File "/home/guillaume/numba/numba/core/lowering.py", line 513, in lower_inst
return self.lower_setitem(inst.target, inst.index_var,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/lowering.py", line 624, in lower_setitem
return impl(self.builder, (target, index, value))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 1190, in __call__
res = self._imp(self._context, builder, self._sig, args, loc=loc)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 1220, in wrapper
return fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/np/arrayobj.py", line 556, in setitem_array
return fancy_setslice(context, builder, sig, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/np/arrayobj.py", line 1715, in fancy_setslice
res = context.compile_internal(builder, raise_impl, sig, tup)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 882, in compile_internal
return self.call_internal(builder, cres.fndesc, sig, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 889, in call_internal
status, res = self.call_internal_no_propagate(builder, fndesc, sig, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 903, in call_internal_no_propagate
status, res = self.call_conv.call_function(builder, fn, sig.return_type,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/callconv.py", line 907, in call_function
code = builder.call(callee, realargs, attrs=_attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/llvmlite/llvmlite/ir/builder.py", line 881, in call
inst = instructions.CallInstr(self.block, fn, args, name=name,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/llvmlite/llvmlite/ir/instructions.py", line 105, in __init__
raise TypeError(msg)
TypeError: Type of #3 arg mismatch: i64 != i32
======================================================================
ERROR: test_numba_farray (__main__.TestCArray.test_numba_farray)
Test Numba-compiled farray() against pure Python farray()
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/guillaume/numba/numba/core/lowering.py", line 511, in lower_inst
impl = self.context.get_function('static_setitem', signature)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 556, in get_function
return self.get_function(fn, sig, _firstcall=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 558, in get_function
raise NotImplementedError("No definition for lowering %s%s" % (key, sig))
NotImplementedError: No definition for lowering static_setitem(Array(float32, 1, 'F', False, aligned=True), slice<a:b>, UniTuple(int32, 2)) -> none
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/guillaume/numba/numba/tests/test_cfunc.py", line 300, in test_numba_farray
self.check_numba_carray_farray(farray_usecase, farray_dtype_usecase)
File "/home/guillaume/numba/numba/tests/test_cfunc.py", line 270, in check_numba_carray_farray
f = cfunc(sig)(pyfunc)
^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/decorators.py", line 275, in wrapper
res.compile()
File "/home/guillaume/numba/numba/core/compiler_lock.py", line 35, in _acquire_compile_lock
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/ccallback.py", line 68, in compile
cres = self._compile_uncached()
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/ccallback.py", line 82, in _compile_uncached
return self._compiler.compile(sig.args, sig.return_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/dispatcher.py", line 80, in compile
status, retval = self._compile_cached(args, return_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/dispatcher.py", line 94, in _compile_cached
retval = self._compile_core(args, return_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/dispatcher.py", line 107, in _compile_core
cres = compiler.compile_extra(self.targetdescr.typing_context,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/compiler.py", line 739, in compile_extra
return pipeline.compile_extra(func)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/compiler.py", line 439, in compile_extra
return self._compile_bytecode()
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/compiler.py", line 505, in _compile_bytecode
return self._compile_core()
^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/compiler.py", line 481, in _compile_core
raise e
File "/home/guillaume/numba/numba/core/compiler.py", line 473, in _compile_core
pm.run(self.state)
File "/home/guillaume/numba/numba/core/compiler_machinery.py", line 363, in run
raise e
File "/home/guillaume/numba/numba/core/compiler_machinery.py", line 356, in run
self._runPass(idx, pass_inst, state)
File "/home/guillaume/numba/numba/core/compiler_lock.py", line 35, in _acquire_compile_lock
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/compiler_machinery.py", line 311, in _runPass
mutated |= check(pss.run_pass, internal_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/compiler_machinery.py", line 272, in check
mangled = func(compiler_state)
^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/typed_passes.py", line 468, in run_pass
lower.lower()
File "/home/guillaume/numba/numba/core/lowering.py", line 193, in lower
self.lower_normal_function(self.fndesc)
File "/home/guillaume/numba/numba/core/lowering.py", line 232, in lower_normal_function
entry_block_tail = self.lower_function_body()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/lowering.py", line 262, in lower_function_body
self.lower_block(block)
File "/home/guillaume/numba/numba/core/lowering.py", line 276, in lower_block
self.lower_inst(inst)
File "/home/guillaume/numba/numba/core/lowering.py", line 513, in lower_inst
return self.lower_setitem(inst.target, inst.index_var,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/lowering.py", line 624, in lower_setitem
return impl(self.builder, (target, index, value))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 1190, in __call__
res = self._imp(self._context, builder, self._sig, args, loc=loc)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 1220, in wrapper
return fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/np/arrayobj.py", line 556, in setitem_array
return fancy_setslice(context, builder, sig, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/np/arrayobj.py", line 1715, in fancy_setslice
res = context.compile_internal(builder, raise_impl, sig, tup)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 882, in compile_internal
return self.call_internal(builder, cres.fndesc, sig, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 889, in call_internal
status, res = self.call_internal_no_propagate(builder, fndesc, sig, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/base.py", line 903, in call_internal_no_propagate
status, res = self.call_conv.call_function(builder, fn, sig.return_type,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/numba/numba/core/callconv.py", line 907, in call_function
code = builder.call(callee, realargs, attrs=_attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/llvmlite/llvmlite/ir/builder.py", line 881, in call
inst = instructions.CallInstr(self.block, fn, args, name=name,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/guillaume/llvmlite/llvmlite/ir/instructions.py", line 105, in __init__
raise TypeError(msg)
TypeError: Type of #3 arg mismatch: i64 != i32
----------------------------------------------------------------------
Ran 13 tests in 17.371s
FAILED (errors=2, skipped=4)