Bug#1002506: Sage crash report
Jean-Paul Vincent
jpvincent1 at orange.fr
Thu Dec 23 13:01:02 GMT 2021
--
Jean-Paul Vincent
-------------- next part --------------
***************************************************************************
IPython post-mortem report
{'commit_hash': '<not found>',
'commit_source': '(none found)',
'default_encoding': 'utf-8',
'ipython_path': '/usr/lib/python3/dist-packages/IPython',
'ipython_version': '7.27.0',
'os_name': 'posix',
'platform': 'Linux-5.15.0-2-amd64-x86_64-with-glibc2.33',
'sys_executable': '/usr/bin/python3',
'sys_platform': 'linux',
'sys_version': '3.9.9 (main, Dec 16 2021, 23:13:29) \n[GCC 11.2.0]'}
***************************************************************************
***************************************************************************
Crash traceback:
----------------------------------------------------------------------
----------------------------------------------------------------------
ImportError Python 3.9.9: /usr/bin/python3
Thu Dec 23 12:51:59 2021
A problem occurred executing Python code. Here is the sequence of function
calls leading up to the error, with the most recent (innermost) call last.
/usr/share/sagemath/bin/sage-ipython in <module>
1 #!/usr/bin/env sage-python
2 # -*- coding: utf-8 -*-
3 """
4 Sage IPython startup script.
5 """
6
7 # Display startup banner. Do this before anything else to give the user
8 # early feedback that Sage is starting.
9 from sage.misc.banner import banner
10 banner()
11
12 from sage.repl.interpreter import SageTerminalApp
13
14 app = SageTerminalApp.instance()
---> 15 app.initialize()
global app.initialize = <bound method TerminalIPythonApp.initialize of <sage.repl.interpreter.SageTerminalApp object at 0x7f5051cf2730>>
16 app.start()
/usr/lib/python3/dist-packages/traitlets/config/application.py in inner(app=<sage.repl.interpreter.SageTerminalApp object>, *args=(), **kwargs={})
73 else:
74 raise ValueError("Unsupported value for environment variable: 'TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR' is set to '%s' which is none of {'0', '1', 'false', 'true', ''}."% _envvar )
75
76
77 def catch_config_error(method):
78 """Method decorator for catching invalid config (Trait/ArgumentErrors) during init.
79
80 On a TraitError (generally caused by bad config), this will print the trait's
81 message, and exit the app.
82
83 For use on init methods, to prevent invoking excepthook on invalid input.
84 """
85 @functools.wraps(method)
86 def inner(app, *args, **kwargs):
87 try:
---> 88 return method(app, *args, **kwargs)
global method = undefined
app = <sage.repl.interpreter.SageTerminalApp object at 0x7f5051cf2730>
args = ()
kwargs = {}
89 except (TraitError, ArgumentError) as e:
90 app.log.fatal("Bad config encountered during initialization: %s", e)
91 app.log.debug("Config at the time: %s", app.config)
92 app.exit(1)
93
94 return inner
95
96 class ApplicationError(Exception):
97 pass
98
99
100 class LevelFormatter(logging.Formatter):
101 """Formatter with additional `highlevel` record
102
103 This field is empty if log level is less than highlevel_limit,
/usr/lib/python3/dist-packages/IPython/terminal/ipapp.py in initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
302
303 return super(TerminalIPythonApp, self).parse_command_line(argv)
304
305 @catch_config_error
306 def initialize(self, argv=None):
307 """Do actions after construct, but before starting the app."""
308 super(TerminalIPythonApp, self).initialize(argv)
309 if self.subapp is not None:
310 # don't bother initializing further, starting subapp
311 return
312 # print self.extra_args
313 if self.extra_args and not self.something_to_run:
314 self.file_to_run = self.extra_args[0]
315 self.init_path()
316 # create the shell
--> 317 self.init_shell()
self.init_shell = <bound method SageTerminalApp.init_shell of <sage.repl.interpreter.SageTerminalApp object at 0x7f5051cf2730>>
318 # and draw the banner
319 self.init_banner()
320 # Now a variety of things that happen after the banner is printed.
321 self.init_gui_pylab()
322 self.init_extensions()
323 self.init_code()
324
325 def init_shell(self):
326 """initialize the InteractiveShell instance"""
327 # Create an InteractiveShell instance.
328 # shell.display_banner should always be False for the terminal
329 # based app, because we call shell.show_banner() by hand below
330 # so the banner shows *before* all extension loading stuff.
331 self.shell = self.interactive_shell_class.instance(parent=self,
332 profile_dir=self.profile_dir,
/usr/lib/python3/dist-packages/sage/repl/interpreter.py in init_shell(self=<sage.repl.interpreter.SageTerminalApp object>)
776 self.shell.has_sage_extensions = SAGE_EXTENSION in self.extensions
777
778 # Load the %lprun extension if available
779 try:
780 import line_profiler
781 except ImportError:
782 pass
783 else:
784 self.extensions.append('line_profiler')
785
786 if self.shell.has_sage_extensions:
787 self.extensions.remove(SAGE_EXTENSION)
788
789 # load sage extension here to get a crash if
790 # something is wrong with the sage library
--> 791 self.shell.extension_manager.load_extension(SAGE_EXTENSION)
self.shell.extension_manager.load_extension = <bound method ExtensionManager.load_extension of <IPython.core.extensions.ExtensionManager object at 0x7f504e55b460>>
global SAGE_EXTENSION = 'sage'
792
793
/usr/lib/python3/dist-packages/IPython/core/extensions.py in load_extension(self=<IPython.core.extensions.ExtensionManager object>, module_str='sage')
72 if module_str in self.loaded:
73 return "already loaded"
74
75 from IPython.utils.syspathcontext import prepended_to_syspath
76
77 with self.shell.builtin_trap:
78 if module_str not in sys.modules:
79 with prepended_to_syspath(self.ipython_extension_dir):
80 mod = import_module(module_str)
81 if mod.__file__.startswith(self.ipython_extension_dir):
82 print(("Loading extensions from {dir} is deprecated. "
83 "We recommend managing extensions like any "
84 "other Python packages, in site-packages.").format(
85 dir=compress_user(self.ipython_extension_dir)))
86 mod = sys.modules[module_str]
---> 87 if self._call_load_ipython_extension(mod):
self._call_load_ipython_extension = <bound method ExtensionManager._call_load_ipython_extension of <IPython.core.extensions.ExtensionManager object at 0x7f504e55b460>>
mod = <module 'sage' from '/usr/lib/python3/dist-packages/sage/__init__.py'>
88 self.loaded.add(module_str)
89 else:
90 return "no load function"
91
92 def unload_extension(self, module_str):
93 """Unload an IPython extension by its module name.
94
95 This function looks up the extension's name in ``sys.modules`` and
96 simply calls ``mod.unload_ipython_extension(self)``.
97
98 Returns the string "no unload function" if the extension doesn't define
99 a function to unload itself, "not loaded" if the extension isn't loaded,
100 otherwise None.
101 """
102 if module_str not in self.loaded:
/usr/lib/python3/dist-packages/IPython/core/extensions.py in _call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager object>, mod=<module 'sage' from '/usr/lib/python3/dist-packages/sage/__init__.py'>)
119 """
120 from IPython.utils.syspathcontext import prepended_to_syspath
121
122 if (module_str in self.loaded) and (module_str in sys.modules):
123 self.unload_extension(module_str)
124 mod = sys.modules[module_str]
125 with prepended_to_syspath(self.ipython_extension_dir):
126 reload(mod)
127 if self._call_load_ipython_extension(mod):
128 self.loaded.add(module_str)
129 else:
130 self.load_extension(module_str)
131
132 def _call_load_ipython_extension(self, mod):
133 if hasattr(mod, 'load_ipython_extension'):
--> 134 mod.load_ipython_extension(self.shell)
mod.load_ipython_extension = <function load_ipython_extension at 0x7f5051c4c0d0>
self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f50503fafd0>
135 return True
136
137 def _call_unload_ipython_extension(self, mod):
138 if hasattr(mod, 'unload_ipython_extension'):
139 mod.unload_ipython_extension(self.shell)
140 return True
141
142 @undoc
143 def install_extension(self, url, filename=None):
144 """
145 Deprecated.
146 """
147 # Ensure the extension directory exists
148 raise DeprecationWarning(
149 '`install_extension` and the `install_ext` magic have been deprecated since IPython 4.0'
/usr/lib/python3/dist-packages/sage/__init__.py in load_ipython_extension(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell object>,))
1 __all__ = ['all']
2
3 # Set sage.__version__ to the current version number. This is analogous
4 # to many other Python packages.
5 from sage.version import version as __version__
6
7 import sys
8 # Make sure that the correct zlib library is loaded. This is needed
9 # to prevent the system zlib to be loaded instead of the Sage one.
10 # See https://trac.sagemath.org/ticket/23122
11 import zlib
12
13 # IPython calls this when starting up
14 def load_ipython_extension(*args):
15 import sage.repl.ipython_extension
---> 16 sage.repl.ipython_extension.load_ipython_extension(*args)
sage.repl.ipython_extension.load_ipython_extension = <function load_ipython_extension at 0x7f504e3238b0>
args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f50503fafd0>,)
17
18
19 # Monkey-patch inspect.isfunction() to support Cython functions.
20 def isfunction(obj):
21 """
22 Check whether something is a function.
23
24 We assume that anything which has a genuine ``__code__``
25 attribute (not using ``__getattr__`` overrides) is a function.
26 This is meant to support Cython functions.
27
28 EXAMPLES::
29
30 sage: from inspect import isfunction
31 sage: def f(): pass
/usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in wrapper(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell object>,), **kwargs={})
548 ....: if work:
549 ....: return 'foo worked'
550 ....: raise RuntimeError("foo didn't work")
551 sage: foo(False)
552 Traceback (most recent call last):
553 ...
554 RuntimeError: foo didn't work
555 sage: foo(True)
556 'foo worked'
557 sage: foo(False)
558 sage: foo(True)
559 """
560 @wraps(func)
561 def wrapper(*args, **kwargs):
562 if not wrapper.has_run:
--> 563 result = func(*args, **kwargs)
result = undefined
global func = undefined
args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f50503fafd0>,)
kwargs = {}
564 wrapper.has_run = True
565 return result
566 wrapper.has_run = False
567 return wrapper
568
569
570 @run_once
571 def load_ipython_extension(ip):
572 """
573 Load the extension in IPython.
574 """
575 # this modifies ip
576 SageCustomizations(shell=ip)
/usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in load_ipython_extension(ip=<sage.repl.interpreter.SageTerminalInteractiveShell object>)
561 def wrapper(*args, **kwargs):
562 if not wrapper.has_run:
563 result = func(*args, **kwargs)
564 wrapper.has_run = True
565 return result
566 wrapper.has_run = False
567 return wrapper
568
569
570 @run_once
571 def load_ipython_extension(ip):
572 """
573 Load the extension in IPython.
574 """
575 # this modifies ip
--> 576 SageCustomizations(shell=ip)
global SageCustomizations = <class 'sage.repl.ipython_extension.SageCustomizations'>
global shell = undefined
ip = <sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f50503fafd0>
/usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in __init__(self=<sage.repl.ipython_extension.SageCustomizations object>, shell=<sage.repl.interpreter.SageTerminalInteractiveShell object>)
420 def __init__(self, shell=None):
421 """
422 Initialize the Sage plugin.
423 """
424 self.shell = shell
425
426 self.auto_magics = SageMagics(shell)
427 self.shell.register_magics(self.auto_magics)
428
429 import sage.misc.edit_module as edit_module
430 self.shell.set_hook('editor', edit_module.edit_devel)
431
432 self.init_inspector()
433 self.init_line_transforms()
434
--> 435 import sage.all # until sage's import hell is fixed
sage.all = undefined
436
437 self.shell.verbose_quit = True
438 self.set_quit_hook()
439
440 self.register_interface_magics()
441
442 if SAGE_IMPORTALL == 'yes':
443 self.init_environment()
444
445 def register_interface_magics(self):
446 """
447 Register magics for each of the Sage interfaces
448 """
449 from sage.repl.interface_magic import InterfaceMagic
450 InterfaceMagic.register_all(self.shell)
/usr/lib/python3/dist-packages/sage/all.py in <module>
123 from functools import reduce # in order to keep reduce in python3
124
125 import sage.misc.lazy_import
126
127 from sage.misc.all import * # takes a while
128 from sage.typeset.all import *
129 from sage.repl.all import *
130
131 from sage.misc.sh import sh
132
133 from sage.libs.all import *
134 from sage.data_structures.all import *
135 from sage.doctest.all import *
136
137 from sage.structure.all import *
--> 138 from sage.rings.all import *
global sage.rings.all = undefined
139 from sage.arith.all import *
140 from sage.matrix.all import *
141
142 from sage.symbolic.all import *
143 from sage.modules.all import *
144 from sage.monoids.all import *
145 from sage.algebras.all import *
146 from sage.modular.all import *
147 from sage.sat.all import *
148 from sage.schemes.all import *
149 from sage.graphs.all import *
150 from sage.groups.all import *
151 from sage.arith.power import generic_power as power
152 from sage.databases.all import *
153 from sage.categories.all import *
/usr/lib/python3/dist-packages/sage/rings/all.py in <module>
68 # Semirings
69 from .semirings.all import *
70
71 # Real numbers
72 from .real_mpfr import (RealField, RR,
73 create_RealNumber as RealNumber) # this is used by the preparser to wrap real literals -- very important.
74 Reals = RealField
75
76 from .real_double import RealDoubleField, RDF, RealDoubleElement
77
78 from .real_lazy import RealLazyField, RLF, ComplexLazyField, CLF
79
80 from sage.rings.real_arb import RealBallField, RBF
81
82 # Polynomial Rings and Polynomial Quotient Rings
---> 83 from .polynomial.all import *
global polynomial.all = undefined
84
85
86 # Algebraic numbers
87 from .qqbar import (AlgebraicRealField, AA,
88 AlgebraicReal,
89 AlgebraicField, QQbar,
90 AlgebraicNumber,
91 number_field_elements_from_algebraics)
92 from .universal_cyclotomic_field import UniversalCyclotomicField, E
93
94 # Intervals
95 from .real_mpfi import (RealIntervalField,
96 RIF,
97 RealInterval)
98
/usr/lib/python3/dist-packages/sage/rings/polynomial/all.py in <module>
27 from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
28 from sage.rings.polynomial.polynomial_ring import polygen, polygens
29 from sage.rings.polynomial.polynomial_element import Polynomial
30
31 # Multivariate Polynomial Rings
32 from sage.rings.polynomial.term_order import TermOrder
33 from sage.rings.polynomial.multi_polynomial_element import degree_lowest_rational_function
34
35 # Generic convolution
36 from sage.rings.polynomial.convolution import convolution
37
38 # Boolean Polynomial Rings
39 from sage.rings.polynomial.polynomial_ring_constructor import BooleanPolynomialRing_constructor as BooleanPolynomialRing
40
41 # Laurent Polynomial Rings
---> 42 from sage.rings.polynomial.laurent_polynomial_ring import LaurentPolynomialRing
global sage.rings.polynomial.laurent_polynomial_ring = undefined
global LaurentPolynomialRing = undefined
43 lazy_import('sage.rings.polynomial.omega', 'MacMahonOmega')
44
45 # Infinite Polynomial Rings
46 from sage.rings.polynomial.infinite_polynomial_ring import InfinitePolynomialRing
47
48 # Ore Polynomial Rings
49 lazy_import('sage.rings.polynomial.ore_polynomial_ring', 'OrePolynomialRing')
50 SkewPolynomialRing = OrePolynomialRing
51
52 # Evaluation of cyclotomic polynomials
53 from sage.rings.polynomial.cyclotomic import cyclotomic_value
54
/usr/lib/python3/dist-packages/sage/rings/polynomial/laurent_polynomial_ring.py in <module>
36 # Vincent Delecroix <20100.delecroix at gmail.com>
37 #
38 # This program is free software: you can redistribute it and/or modify
39 # it under the terms of the GNU General Public License as published by
40 # the Free Software Foundation, either version 2 of the License, or
41 # (at your option) any later version.
42 # https://www.gnu.org/licenses/
43 # ****************************************************************************
44 from __future__ import absolute_import
45
46 from sage.structure.element import parent
47 from sage.structure.parent import Parent
48 from sage.rings.infinity import infinity
49 from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
50 from sage.misc.latex import latex
---> 51 from sage.rings.polynomial.laurent_polynomial import LaurentPolynomial_mpair, LaurentPolynomial_univariate
global sage.rings.polynomial.laurent_polynomial = undefined
global LaurentPolynomial_mpair = undefined
global LaurentPolynomial_univariate = undefined
52 from sage.rings.ring import CommutativeRing
53
54 import sage.rings.polynomial.laurent_polynomial_ideal as lp_ideal
55
56 def is_LaurentPolynomialRing(R):
57 """
58 Returns True if and only if R is a Laurent polynomial ring.
59
60 EXAMPLES::
61
62 sage: from sage.rings.polynomial.laurent_polynomial_ring import is_LaurentPolynomialRing
63 sage: P = PolynomialRing(QQ,2,'x')
64 sage: is_LaurentPolynomialRing(P)
65 False
66
/usr/lib/python3/dist-packages/sage/rings/polynomial/laurent_polynomial.pyx in init sage.rings.polynomial.laurent_polynomial (build/cythonized/sage/rings/polynomial/laurent_polynomial.c:40756)()
----> 1 r"""
2 Elements of Laurent polynomial rings
3 """
4
5 # ****************************************************************************
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 2 of the License, or
9 # (at your option) any later version.
10 # https://www.gnu.org/licenses/
11 # ****************************************************************************
12
13 from sage.rings.integer cimport Integer
14 from sage.categories.map cimport Map
15 from sage.structure.element import is_Element, coerce_binop
16 from sage.misc.misc import union
17 from sage.structure.factorization import Factorization
18 from sage.misc.derivative import multi_derivative
19 from sage.rings.polynomial.polynomial_element import Polynomial
20 from sage.rings.polynomial.polynomial_ring import is_PolynomialRing
21 from sage.structure.richcmp cimport richcmp, rich_to_bool
22 from sage.matrix.matrix0 cimport Matrix
23
24 cdef class LaurentPolynomial(CommutativeAlgebraElement):
25 """
26 Base class for Laurent polynomials.
27 """
28 cdef LaurentPolynomial _new_c(self):
29 """
30 Return a new Laurent polynomial.
31
/usr/lib/python3/dist-packages/sage/matrix/__init__.py in <module>
1 # Resolve a cyclic import
----> 2 import sage.matrix.args
global sage.matrix.args = undefined
/usr/lib/python3/dist-packages/sage/matrix/args.pyx in init sage.matrix.args (build/cythonized/sage/matrix/args.c:21561)()
8 # Copyright (C) 2018 Jeroen Demeyer <J.Demeyer at UGent.be>
9 #
10 # This program is free software: you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation, either version 2 of the License, or
13 # (at your option) any later version.
14 # http://www.gnu.org/licenses/
15 #*****************************************************************************
16
17 cimport cython
18 from cpython.sequence cimport PySequence_Fast
19 from cysignals.signals cimport sig_check
20 from cypari2.gen cimport Gen
21 from cypari2.types cimport typ, t_MAT, t_VEC, t_COL, t_VECSMALL, t_LIST, t_STR, t_CLOSURE
22
---> 23 from .matrix_space import MatrixSpace
global matrix_space = undefined
global MatrixSpace = undefined
24 from sage.rings.integer_ring import ZZ
25 from sage.rings.real_double import RDF
26 from sage.rings.complex_double import CDF
27 from sage.structure.coerce cimport (coercion_model,
28 is_numpy_type, py_scalar_parent)
29 from sage.structure.element cimport Element, RingElement, Vector
30 from sage.arith.long cimport pyobject_to_long
31 from sage.misc.misc_c import sized_iter
32 from sage.categories import monoids
33
34
35 CommutativeMonoids = monoids.Monoids().Commutative()
36
37
38 cdef inline bint element_is_scalar(Element x):
/usr/lib/python3/dist-packages/sage/matrix/matrix_space.py in <module>
29 # it under the terms of the GNU General Public License as published by
30 # the Free Software Foundation, either version 2 of the License, or
31 # (at your option) any later version.
32 # https://www.gnu.org/licenses/
33 # ****************************************************************************
34 from __future__ import print_function, absolute_import
35
36 # System imports
37 import sys
38 import operator
39
40 # Sage matrix imports
41 from . import matrix_generic_dense
42 from . import matrix_generic_sparse
43
---> 44 from . import matrix_modn_sparse
global matrix_modn_sparse = undefined
45
46 from . import matrix_mod2_dense
47 from . import matrix_gf2e_dense
48
49 from . import matrix_integer_dense
50 from . import matrix_integer_sparse
51
52 from . import matrix_rational_dense
53 from . import matrix_rational_sparse
54
55 from . import matrix_polynomial_dense
56 from . import matrix_mpolynomial_dense
57
58 # Sage imports
59 import sage.structure.coerce
ImportError: /usr/lib/python3/dist-packages/sage/matrix/matrix_modn_sparse.cpython-39-x86_64-linux-gnu.so: undefined symbol: _ZNK6Givaro7IntegercvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEB5cxx11Ev
***************************************************************************
History of session input:
*** Last line of input (may not be in above history):
More information about the debian-science-maintainers
mailing list