python-theano fails to build with Python 3.10.0b1. =================================== FAILURES =================================== _____________________________ TestRopLop.test_max ______________________________ self = Shape.0 def __iter__(self): try: for i in range(theano.tensor.basic.get_vector_length(self)): > yield self[i] theano/tensor/var.py:638: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Shape.0, args = (0,) def __getitem__(self, args): def includes_bool(args_el): if isinstance(args_el, (np.bool_, bool)) or ( hasattr(args_el, "dtype") and args_el.dtype == "bool" ): return True if not isinstance(args_el, theano.tensor.Variable) and isinstance( args_el, Iterable ): for el in args_el: if includes_bool(el): return True return False if isinstance(args, list) and any([isinstance(a, slice) for a in args]): pass elif not isinstance(args, tuple): args = (args,) # Count the dimensions, check for bools and find ellipses. ellipses = [] index_dim_count = 0 for i, arg in enumerate(args): if arg is np.newaxis: # no increase in index_dim_count pass elif arg is Ellipsis: # no increase in index_dim_count ellipses.append(i) elif ( isinstance(arg, (np.ndarray, theano.tensor.Variable)) and hasattr(arg, "dtype") and arg.dtype == "bool" ): index_dim_count += arg.ndim else: # Python arrays can contain a mixture of bools and integers, # which requires complex rules to handle all special cases. # These rules differ slightly between NumPy versions. # Since earlier versions of Theano did not support any boolean # indexing, it is safe to throw an error if we encounter # any of these difficult cases. if includes_bool(arg): raise TypeError( "TensorType does not support Python bools " "for indexing, such as tensor[[True, False]]. " "To use a boolean mask, convert the mask to " "a NumPy array first, e.g., " "tensor[numpy.array([True, False])]." ) index_dim_count += 1 # Check if the number of dimensions isn't too large. if self.ndim < index_dim_count: raise IndexError("too many indices for array") # Convert an Ellipsis if provided into an appropriate number of # slice(None). if len(ellipses) > 1: raise IndexError("an index can only have a single Ellipsis (`...`)") elif len(ellipses) == 1: ellipsis_at = ellipses[0] args = list(args) args[ellipsis_at : ellipsis_at + 1] = [slice(None)] * ( self.ndim - index_dim_count ) def is_empty_array(val): return (isinstance(val, (tuple, list)) and len(val) == 0) or ( isinstance(val, np.ndarray) and val.size == 0 ) # Force input to be int64 datatype if input is an empty list or tuple # Else leave it as is if it is a real number # Convert python literals to theano constants args = tuple( > [ theano.tensor.subtensor.as_index_constant( np.array(inp, dtype=np.int64) if is_empty_array(inp) else inp ) for inp in args ] ) theano/tensor/var.py:516: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .0 = <tuple_iterator object at 0x7f209fb80d60> [ > theano.tensor.subtensor.as_index_constant( np.array(inp, dtype=np.int64) if is_empty_array(inp) else inp ) for inp in args ] ) theano/tensor/var.py:517: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ a = 0 def as_index_constant(a): """Convert Python literals to Theano constants--when possible--in Subtensor arguments. This will leave `Variable`s untouched. """ if a is None: return a elif isinstance(a, slice): return slice( as_index_constant(a.start), as_index_constant(a.stop), as_index_constant(a.step), ) elif isinstance(a, (int, np.integer)): > return scal.ScalarConstant(scal.int64, a) theano/tensor/subtensor.py:53: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Constant{0}, type = Scalar(int64), data = 0, name = None def __init__(self, type, data, name=None): super().__init__(type, None, None, name) self.data = type.filter(data) > add_tag_trace(self) theano/gof/graph.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thing = Constant{0}, user_line = 8 def add_tag_trace(thing, user_line=None): """ Add tag.trace to an node or variable. The argument is returned after being affected (inplace). Parameters ---------- thing The object where we add .tag.trace. user_line The max number of user line to keep. Notes ----- We also use config.traceback__limit for the maximum number of stack level we look. """ if user_line is None: user_line = config.traceback__limit if user_line == -1: user_line = None skips = [ "theano/tensor/", "theano\\tensor\\", "theano/compile/", "theano\\compile\\", "theano/gof/", "theano\\gof\\", "theano/scalar/basic.py", "theano\\scalar\\basic.py", "theano/sandbox/", "theano\\sandbox\\", "theano/scan/", "theano\\scan\\", "theano/sparse/", "theano\\sparse\\", "theano/typed_list/", "theano\\typed_list\\", ] if config.traceback__compile_limit > 0: skips = [] > tr = simple_extract_stack(limit=user_line, skips=skips) theano/gof/utils.py:117: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ f = <frame at 0x7f20a0566710, file '/builddir/build/BUILD/Theano-PyMC-rel-1.0.13/theano/tensor/extra_ops.py', line -1, code <genexpr>> limit = 8 skips = ['theano/tensor/', 'theano\\tensor\\', 'theano/compile/', 'theano\\compile\\', 'theano/gof/', 'theano\\gof\\', ...] def simple_extract_stack(f=None, limit=None, skips=None): """This is traceback.extract_stack from python 2.7 with this change: - Comment the update of the cache. - Skip internal stack trace level. The update of the cache call os.stat to verify is the cache is up to date. This take too much time on cluster. limit - The number of stack level we want to return. If None, mean all what we can. skips - partial path of stack level we don't want to keep and count. When we find one level that isn't skipped, we stop skipping. """ if skips is None: skips = [] if f is None: try: raise ZeroDivisionError except ZeroDivisionError: f = sys.exc_info()[2].tb_frame.f_back if limit is None: if hasattr(sys, "tracebacklimit"): limit = sys.tracebacklimit trace = [] n = 0 while f is not None and (limit is None or n < limit): lineno = f.f_lineno co = f.f_code filename = co.co_filename name = co.co_name # linecache.checkcache(filename) > line = linecache.getline(filename, lineno, f.f_globals) theano/gof/utils.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ filename = '/builddir/build/BUILD/Theano-PyMC-rel-1.0.13/theano/tensor/extra_ops.py' lineno = None module_globals = {'Apply': <class 'theano.gof.graph.Apply'>, 'Bartlett': <class 'theano.tensor.extra_ops.Bartlett'>, 'BroadcastTo': <class 'theano.tensor.extra_ops.BroadcastTo'>, 'Collection': <class 'collections.abc.Collection'>, ...} def getline(filename, lineno, module_globals=None): """Get a line for a Python source file from the cache. Update the cache if it doesn't contain an entry for this file already.""" lines = getlines(filename, module_globals) > if 1 <= lineno <= len(lines): E TypeError: '<=' not supported between instances of 'int' and 'NoneType' /usr/lib64/python3.10/linecache.py:31: TypeError During handling of the above exception, another exception occurred: self = <tests.test_rop.TestRopLop object at 0x7f209fb80100> def test_max(self): # If we call max directly, we will return an CAReduce object # which doesn't have R_op implemented! # self.check_mat_rop_lop(tensor.max(self.mx, axis=[0,1])[0], ()) > self.check_mat_rop_lop(tensor.max(self.mx, axis=0), (self.mat_in_shape[1],)) tests/test_rop.py:196: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_rop.py:105: in check_mat_rop_lop yv = tensor.Rop(y, self.mx, self.mv) theano/gradient.py:323: in Rop _traverse(out.owner) theano/gradient.py:317: in _traverse seen_nodes[node] = op.R_op(node.inputs, same_type_eval_points) theano/tensor/basic.py:1504: in R_op return [eval_points[0][max_pos, arange(eval_points[0].shape[1])], None] theano/tensor/var.py:577: in __getitem__ return theano.tensor.subtensor.advanced_subtensor(self, *args) theano/gof/op.py:639: in __call__ node = self.make_node(*inputs, **kwargs) theano/tensor/subtensor.py:2321: in make_node for i in indexed_result_shape(fake_shape, bcast_index) theano/tensor/subtensor.py:410: in indexed_result_shape res_shape += broadcast_shape( theano/tensor/extra_ops.py:1456: in broadcast_shape return broadcast_shape_iter(arrays, **kwargs) theano/tensor/extra_ops.py:1489: in broadcast_shape_iter array_shapes = [ theano/tensor/extra_ops.py:1491: in <listcomp> + tuple(one if bcast else sh for sh, bcast in zip(a.shape, a.broadcastable)) theano/tensor/extra_ops.py:-1: in <genexpr> ??? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Shape.0 def __iter__(self): try: for i in range(theano.tensor.basic.get_vector_length(self)): yield self[i] except TypeError: # This prevents accidental iteration via sum(self) > raise TypeError( "TensorType does not support iteration. " "Maybe you are using builtins.sum instead of " "theano.tensor.sum? (Maybe .max?)" ) E TypeError: TensorType does not support iteration. Maybe you are using builtins.sum instead of theano.tensor.sum? (Maybe .max?) ... =========================== short test summary info ============================ FAILED tests/test_rop.py::TestRopLop::test_max - TypeError: TensorType does n... FAILED tests/test_rop.py::TestRopLop::test_argmax - TypeError: TensorType doe... FAILED tests/compile/test_nanguardmode.py::test_NanGuardMode - TypeError: Ten... FAILED tests/gof/test_opt.py::test_pre_constant_merge - TypeError: TensorType... FAILED tests/tensor/test_basic.py::TestAlloc::test_alloc_constant_folding - T... FAILED tests/tensor/test_extra_ops.py::test_to_one_hot - TypeError: TensorTyp... FAILED tests/tensor/test_extra_ops.py::test_broadcast_shape - TypeError: Tens... FAILED tests/tensor/test_mlp.py::test_mlp - TypeError: TensorType does not su... FAILED tests/tensor/test_opt.py::TestAllocZero::test_advancedincsubtensor_allocs0 FAILED tests/tensor/test_opt.py::TestAllocZero::test_advancedincsubtensor_allocs0t FAILED tests/tensor/test_opt.py::TestAllocZero::test_advancedincsubtensor_allocs1 FAILED tests/tensor/test_opt.py::test_local_IncSubtensor_serialize - TypeErro... FAILED tests/tensor/test_sort.py::TestSort::test_grad_negative_axis_2d - Type... FAILED tests/tensor/test_sort.py::TestSort::test_grad_negative_axis_3d - Type... FAILED tests/tensor/test_sort.py::TestSort::test_grad_negative_axis_4d - Type... FAILED tests/tensor/test_sort.py::TestSort::test_grad_nonnegative_axis_2d - T... FAILED tests/tensor/test_sort.py::TestSort::test_grad_nonnegative_axis_3d - T... FAILED tests/tensor/test_sort.py::TestSort::test_grad_nonnegative_axis_4d - T... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False-1-shp1] - TypeErr... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False-1-shp2] - TypeErr... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False-1-shp3] - TypeErr... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False--1-shp1] - TypeEr... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False--1-shp2] - TypeEr... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False--1-shp3] - TypeEr... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False-(1+n)//2-shp1] - ... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False-(1+n)//2-shp2] - ... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False-(1+n)//2-shp3] - ... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False-n-1-shp1] - TypeE... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False-n-1-shp2] - TypeE... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False-n-1-shp3] - TypeE... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False--n-shp1] - TypeEr... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False--n-shp2] - TypeEr... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False--n-shp3] - TypeEr... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False-1-n-shp1] - TypeE... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False-1-n-shp2] - TypeE... FAILED tests/tensor/test_sort.py::TestTopK::test_grad[False-1-n-shp3] - TypeE... FAILED tests/tensor/test_subtensor.py::TestSubtensor::test_ellipsis - TypeErr... FAILED tests/tensor/test_subtensor.py::TestSubtensor::test_boolean - TypeErro... FAILED tests/tensor/test_subtensor.py::TestSubtensor::test_adv_constant_arg FAILED tests/tensor/test_subtensor.py::TestAdvancedSubtensor::test_index_w_int_and_vec FAILED tests/tensor/test_subtensor.py::TestAdvancedSubtensor::test_adv_subtensor_w_int_and_matrix FAILED tests/tensor/test_subtensor.py::TestAdvancedSubtensor::test_adv_subtensor_w_none_and_matrix FAILED tests/tensor/test_subtensor.py::TestAdvancedSubtensor::test_adv_subtensor_w_slice_and_matrix FAILED tests/tensor/test_subtensor.py::TestAdvancedSubtensor::test_adv_subtensor_w_matrix_and_int FAILED tests/tensor/test_subtensor.py::TestAdvancedSubtensor::test_adv_subtensor_w_matrix_and_none FAILED tests/tensor/test_subtensor.py::TestAdvancedSubtensor::test_inc_adv_subtensor_w_2vec FAILED tests/tensor/test_subtensor.py::TestAdvancedSubtensor::test_inc_adv_subtensor_with_broadcasting FAILED tests/tensor/test_subtensor.py::TestAdvancedSubtensor::test_inc_adv_subtensor_with_index_broadcasting FAILED tests/tensor/test_subtensor.py::TestAdvancedSubtensor::test_2d_3d_tensors FAILED tests/tensor/test_subtensor.py::TestAdvancedSubtensor::test_adv_sub_3d FAILED tests/tensor/test_subtensor.py::TestAdvancedSubtensor::test_adv_grouped FAILED tests/tensor/test_subtensor.py::TestAdvancedSubtensor::test_grad - Typ... FAILED tests/tensor/test_subtensor.py::TestInferShape::test_AdvancedIncSubtensor FAILED tests/tensor/test_subtensor.py::TestInferShape::test_AdvancedSubtensor FAILED tests/tensor/test_subtensor.py::TestInferShape::test_AdvancedSubtensor_bool FAILED tests/tensor/test_subtensor.py::test_indexed_result_shape - TypeError:... FAILED tests/tensor/test_var.py::test__getitem__AdvancedSubtensor_bool - Type... FAILED tests/tensor/test_var.py::test__getitem__AdvancedSubtensor - TypeError... FAILED tests/tensor/nnet/test_nnet.py::TestCrossEntropyCategorical1Hot::test_get_rid_of_advanced_indexing_version_of_xent FAILED tests/tensor/nnet/test_nnet.py::TestCrossEntropyCategorical1Hot::test_xent_thing_int32 FAILED tests/tensor/nnet/test_nnet.py::TestCrossEntropyCategorical1Hot::test_optimize_xent_vector FAILED tests/tensor/nnet/test_nnet.py::TestCrossEntropyCategorical1Hot::test_optimize_xent_vector2 FAILED tests/tensor/nnet/test_nnet.py::TestCrossEntropyCategorical1Hot::test_optimize_xent_vector3 FAILED tests/tensor/nnet/test_nnet.py::TestCrossEntropyCategorical1Hot::test_optimize_xent_vector4 FAILED tests/tensor/nnet/test_nnet.py::TestCrossEntropyCategorical1Hot::test_crossentropy_softmax_1hot_with_bias_dxcale_cost FAILED tests/tensor/nnet/test_nnet.py::test_h_softmax - TypeError: TensorType... FAILED tests/tensor/random/test_opt.py::test_Subtensor_lift[indices0-True-dist_op0-dist_params0-size0] FAILED tests/tensor/random/test_opt.py::test_Subtensor_lift[indices1-True-dist_op1-dist_params1-size1] FAILED tests/tensor/random/test_opt.py::test_Subtensor_lift[indices3-True-dist_op3-dist_params3-size3] FAILED tests/tensor/random/test_opt.py::test_Subtensor_lift[indices4-True-dist_op4-dist_params4-size4] FAILED tests/tensor/random/test_opt.py::test_Subtensor_lift[indices5-False-dist_op5-dist_params5-size5] = 71 failed, 3895 passed, 485 skipped, 7 xfailed, 105251 warnings in 5838.05s (1:37:18) = For the build logs, see: https://copr-be.cloud.fedoraproject.org/results/@python/python3.10/fedora-rawhide-x86_64/02181528-python-theano/ For all our attempts to build python-theano with Python 3.10, see: https://copr.fedorainfracloud.org/coprs/g/python/python3.10/package/python-theano/ Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.10: https://copr.fedorainfracloud.org/coprs/g/python/python3.10/ Let us know here if you have any questions. Python 3.10 will be included in Fedora 35. To make that update smoother, we're building Fedora packages with early pre-releases of Python 3.10. A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon. We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.
This is a mass-posted update. Sorry if it is not 100% accurate to this bugzilla. The Python 3.10 rebuild is in progress in a Koji side tag. If you manage to fix the problem, please commit the fix in the rawhide branch, but don't build the package in regular rawhide. You can either build the package in the side tag, with: $ fedpkg build --target=f35-python Or you can the build and we will eventually build it for you. Note that the rebuild is still in progress, so not all (build) dependencies of this package might be available right away. Thanks. See also https://fedoraproject.org/wiki/Changes/Python3.10 If you have general questions about the rebuild, please use this mailing list thread: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/G47SGOYIQLRDTWGOSLSWERZSSHXDEDH5/
The f35-python side tag has been merged to Rawhide. From now on, build as you would normally build.
*** Bug 1969158 has been marked as a duplicate of this bug. ***
I found a small change in the linecache code in python 3.10 was leading to the errors reported above. I added a patch to fix that and got a good build in mock. Building in koji, however, failed: tests/tensor/nnet/test_corr3d.py ...sFs..F..F..F..FFF...Fatal Python error: Segmentation fault Current thread 0xb6fa5010 (most recent call first): File "/builddir/build/BUILD/Theano-PyMC-rel-1.0.13/theano/gof/opt.py", line 251 in apply File "/builddir/build/BUILD/Theano-PyMC-rel-1.0.13/theano/gof/opt.py", line 78 in optimize File "/builddir/build/BUILD/Theano-PyMC-rel-1.0.13/theano/gof/opt.py", line 87 in __call__ File "/builddir/build/BUILD/Theano-PyMC-rel-1.0.13/theano/compile/function/types.py", line 1602 in __init__ File "/builddir/build/BUILD/Theano-PyMC-rel-1.0.13/theano/compile/function/types.py", line 1955 in orig_function File "/builddir/build/BUILD/Theano-PyMC-rel-1.0.13/theano/compile/function/pfunc.py", line 524 in pfunc File "/builddir/build/BUILD/Theano-PyMC-rel-1.0.13/theano/compile/function/__init__.py", line 337 in function File "/builddir/build/BUILD/Theano-PyMC-rel-1.0.13/theano/gradient.py", line 1857 in verify_grad File "/builddir/build/BUILD/Theano-PyMC-rel-1.0.13/tests/unittest_tools.py", line 77 in verify_grad File "/builddir/build/BUILD/Theano-PyMC-rel-1.0.13/tests/tensor/nnet/test_corr3d.py", line 173 in validate File "/builddir/build/BUILD/Theano-PyMC-rel-1.0.13/tests/tensor/nnet/test_corr3d.py", line 302 in test_shape_Constant_tensor File "/usr/lib/python3.10/site-packages/_pytest/python.py", line 183 in pytest_pyfunc_call File "/usr/lib/python3.10/site-packages/pluggy/callers.py", line 187 in _multicall File "/usr/lib/python3.10/site-packages/pluggy/manager.py", line 84 in <lambda> File "/usr/lib/python3.10/site-packages/pluggy/manager.py", line 93 in _hookexec File "/usr/lib/python3.10/site-packages/pluggy/hooks.py", line 286 in __call__ File "/usr/lib/python3.10/site-packages/_pytest/python.py", line 1641 in runtest File "/usr/lib/python3.10/site-packages/_pytest/runner.py", line 162 in pytest_runtest_call File "/usr/lib/python3.10/site-packages/pluggy/callers.py", line 187 in _multicall File "/usr/lib/python3.10/site-packages/pluggy/manager.py", line 84 in <lambda> File "/usr/lib/python3.10/site-packages/pluggy/manager.py", line 93 in _hookexec File "/usr/lib/python3.10/site-packages/pluggy/hooks.py", line 286 in __call__ File "/usr/lib/python3.10/site-packages/_pytest/runner.py", line 255 in <lambda> File "/usr/lib/python3.10/site-packages/_pytest/runner.py", line 311 in from_call File "/usr/lib/python3.10/site-packages/_pytest/runner.py", line 254 in call_runtest_hook File "/usr/lib/python3.10/site-packages/_pytest/runner.py", line 215 in call_and_report File "/usr/lib/python3.10/site-packages/_pytest/runner.py", line 126 in runtestprotocol File "/usr/lib/python3.10/site-packages/_pytest/runner.py", line 109 in pytest_runtest_protocol File "/usr/lib/python3.10/site-packages/pluggy/callers.py", line 187 in _multicall File "/usr/lib/python3.10/site-packages/pluggy/manager.py", line 84 in <lambda> File "/usr/lib/python3.10/site-packages/pluggy/manager.py", line 93 in _hookexec File "/usr/lib/python3.10/site-packages/pluggy/hooks.py", line 286 in __call__ File "/usr/lib/python3.10/site-packages/_pytest/main.py", line 348 in pytest_runtestloop File "/usr/lib/python3.10/site-packages/pluggy/callers.py", line 187 in _multicall File "/usr/lib/python3.10/site-packages/pluggy/manager.py", line 84 in <lambda> File "/usr/lib/python3.10/site-packages/pluggy/manager.py", line 93 in _hookexec File "/usr/lib/python3.10/site-packages/pluggy/hooks.py", line 286 in __call__ File "/usr/lib/python3.10/site-packages/_pytest/main.py", line 323 in _main File "/usr/lib/python3.10/site-packages/_pytest/main.py", line 269 in wrap_session File "/usr/lib/python3.10/site-packages/_pytest/main.py", line 316 in pytest_cmdline_main File "/usr/lib/python3.10/site-packages/pluggy/callers.py", line 187 in _multicall File "/usr/lib/python3.10/site-packages/pluggy/manager.py", line 84 in <lambda> File "/usr/lib/python3.10/site-packages/pluggy/manager.py", line 93 in _hookexec File "/usr/lib/python3.10/site-packages/pluggy/hooks.py", line 286 in __call__ File "/usr/lib/python3.10/site-packages/_pytest/config/__init__.py", line 162 in main File "/usr/lib/python3.10/site-packages/_pytest/config/__init__.py", line 185 in console_main File "/usr/bin/pytest", line 33 in <module> Extension modules: numpy.core._multiarray_umath, numpy.core._multiarray_tests, numpy.linalg.lapack_lite, numpy.linalg._umath_linalg, numpy.fft._pocketfft_internal, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._mt19937, numpy.random.mtrand, numpy.random._philox, numpy.random._pcg64, numpy.random._sfc64, numpy.random._generator, lazylinker_ext.lazylinker_ext, scipy._lib._ccallback_c, scipy.special._ufuncs_cxx, scipy.special._ufuncs, scipy.special.specfun, scipy.linalg._fblas, scipy.linalg._flapack, scipy.linalg._flinalg, scipy.linalg._solve_toeplitz, scipy.linalg._matfuncs_sqrtm_triu, scipy.linalg.cython_blas, scipy.linalg.cython_lapack, scipy.linalg._decomp_update, scipy.sparse._sparsetools, scipy.sparse._csparsetools, scipy.sparse.csgraph._tools, scipy.sparse.csgraph._shortest_path, scipy.sparse.csgraph._traversal, scipy.sparse.csgraph._min_spanning_tree, scipy.sparse.csgraph._flow, scipy.sparse.csgraph._matching, scipy.sparse.csgraph._reordering, scipy.special._comb, scipy.special._ellip_harm_2, scipy.spatial.ckdtree, scipy._lib.messagestream, scipy.spatial.qhull, scipy.spatial._voronoi, scipy.spatial._distance_wrap, scipy.spatial._hausdorff, scipy.spatial.transform.rotation, scipy.ndimage._nd_image, _ni_label, scipy.ndimage._ni_label, scipy.optimize.minpack2, scipy.sparse.linalg.isolve._iterative, scipy.sparse.linalg.dsolve._superlu, scipy.sparse.linalg.eigen.arpack._arpack, scipy.optimize._group_columns, scipy.optimize._trlib._trlib, scipy.optimize._lbfgsb, scipy.optimize.moduleTNC, scipy.optimize._cobyla, scipy.optimize._slsqp, scipy.optimize._minpack, scipy.optimize._lsq.givens_elimination, scipy.optimize._zeros, scipy.optimize.__nnls, scipy.optimize._highs.cython.src._highs_wrapper, scipy.optimize._highs._highs_wrapper, scipy.optimize._highs.cython.src._highs_constants, scipy.optimize._highs._highs_constants, scipy.linalg._interpolative, scipy.optimize._bglu_dense, scipy.optimize._lsap_module, scipy.integrate._odepack, scipy.integrate._quadpack, scipy.integrate.vode, scipy.integrate._dop, scipy.integrate.lsoda, scipy.interpolate._fitpack, scipy.interpolate.dfitpack, scipy.interpolate._bspl, scipy.interpolate._ppoly, scipy.interpolate.interpnd, scipy.special.cython_special, scipy.stats._stats, scipy.stats.statlib, scipy.stats.mvn, scipy.signal.sigtools, scipy._lib._uarray._uarray, scipy.signal._max_len_seq_inner, scipy.signal._upfirdn_apply, scipy.signal.spline, scipy.signal._sosfilt, scipy.signal._spectral, scipy.signal._peak_finding_utils, pygpu.gpuarray, pygpu._elemwise, markupsafe._speedups, pygpu.blas, tmpa4dw21x2.m30586f65c469f1ab992342f7731fb75796c381649c411ab09a01493f6ab04d51, cutils_ext.cutils_ext, tmptmpeis7k.macf077186293f8476c41b47c31add37c91891631dc83bd64091704641881999d, tmpjzvg0s_t.mc617ef147f5bab39b7d0414573bade77789fa4e34cb6c59803b6d4631856c54a, tmpthfjvmbf.m38217f6f799366415613d6b5daa2cd53ba33827c2f1c85602948b22610f93f1a, tmpe27uqvfq.m7f731f8ee89857de49ba7dae4086ef8dc810ae01a76f298a4f8589742a6f759f, ... where "..." stands for a lot more "tmp*" modules. I have never seen this segfault before, nor did it occur in yesterday's mock build. On the other hand, the koji builder was a 32-bit ARM machine, where my mock build was on an x86_64 machine. Thoughts on how to diagnose this crash are welcome.
The current python-theano package is not the latest code. I have held off on further updates, because backwards incompatible changes were made that broke sympy. Also the name changed from Theano to Aesara. However, I now see that sympy upstream is preparing to release a new version with Aesara support: https://github.com/sympy/sympy/pull/21087 If python-lasagne and python-pymc3 can be switched to Aesara as well, then we should submit an Aesara package for review. Whether that will fix the current batch of build issues remains to be seen, of course.
Correction: sympy upstream *did* release a new version with Aesara support. Version 1.8, which is already available in Rawhide, has it.
(In reply to Jerry James from comment #5) > The current python-theano package is not the latest code. I have held off > on further updates, because backwards incompatible changes were made that > broke sympy. Also the name changed from Theano to Aesara. However, I now > see that sympy upstream is preparing to release a new version with Aesara > support: > > https://github.com/sympy/sympy/pull/21087 > > If python-lasagne and python-pymc3 can be switched to Aesara as well, then > we should submit an Aesara package for review. > > Whether that will fix the current batch of build issues remains to be seen, > of course. Jerry, I have started to package Aesara. I have also finished an update of theano-pymc to 1.1.2 (it's not commited yet). I imagine this is the last version theano before switching to aesara. How I proceed? Do I create a pull request?
A pull request is fine. Or I can make you a comaintainer of the python-theano package, if you prefer, and then you can commit directly. Thanks for looking into aesara.
Great, I'm already a comaintainer, I think. It's built in rawhide https://koji.fedoraproject.org/koji/buildinfo?buildID=1768264
Hello, Please note that this comment was generated automatically. If you feel that this output has mistakes, please contact me via email (mhroncok). All subpackages of a package against which this bug was filled are now installable or removed from Fedora 35. Thanks for taking care of it!