Bug#950467: Nice catch, Tobias! Up for another? (Was: Install, run & crash w/ ...)
Kingsley G. Morse Jr.
kingsley at loaner.com
Mon Feb 3 00:04:21 GMT 2020
I'm happy to report your guess was correct.
Through no fault of yours
$ apt-get install sagemath
on my computer failed to upgrade the
libgsl23 package to the latest version in
unstable.
Evidently not upgrading compliant dependencies to
their latest available versions is intentional.
But, I'm also happy to report, manually upgrading
it with
$ apt-get install libgsl23
seems to have fixed
> ImportError: /usr/lib/i386-linux-gnu/libgsl.so.23: undefined symbol: cblas_ctrmv
That's the good news.
The bad?
$ sage
crashed with a new error.
Toward the end of Sage_crash_report.txt I now see
ImportError: /usr/lib/python3/dist-packages/sage/libs/gap/element.cpython-37m-i386-linux-gnu.so: undefined symbol: GAP_EnterStack_
If I understand correctly, it suggests sage
didn't find the symbol
GAP_EnterStack_
which seems to be associated with the GAP computer
algebra system.
Upgrading the following gap packages to their
latest versions in unstable elicited the same
error:
gap-core
gap-smallgrp-extra
gap-design
gap-float
gap-grape
gap-guava
gap-laguna
gap-openmath
gap-radiroot
gap-scscp
gap-sonata
gap-toric
I also checked if the versions of packages owning
files listed in its stack trace were currently in
unstable.
Unless I overlooked something, they are.
If you happen to have the time, and are so
inclined, feel free to share more insight!
The latest Sage_crash_report.txt isi attached to
this email, and hopefully, bug report.
Thanks,
Kingsley
On 02/02/2020 09:56, Tobias Hansen wrote:
> Hi,
>
> looks like an instance of #907119 which was fixed in gsl 2.5+dfsg-5, however you have gsl 2.5+dfsg-4 installed. Please update your packages to the versions in unstable.
>
> Best,
> Tobias
>
> On 2/2/20 9:13 AM, Kingsley G. Morse Jr. wrote:
> > ImportError: /usr/lib/i386-linux-gnu/libgsl.so.23: undefined symbol: cblas_ctrmv
>
> > ii libgsl23 2.5+dfsg-4
>
--
Time is the fire in which we all burn.
-------------- 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.11.1',
'os_name': 'posix',
'platform': 'Linux-4.4.0-1-686-pae-i686-with-debian-bullseye-sid',
'sys_executable': '/usr/bin/python3',
'sys_platform': 'linux',
'sys_version': '3.7.5rc1 (default, Oct 2 2019, 04:19:31) \n'
'[GCC 9.2.1 20190909]'}
***************************************************************************
***************************************************************************
Crash traceback:
---------------------------------------------------------------------------
---------------------------------------------------------------------------
ImportError Python 3.7.5rc1: /usr/bin/python3
Sun Feb 2 15:13:05 2020
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 0xb708cc6c>>
16 app.start()
<decorator-gen-113> in initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
/usr/lib/python3/dist-packages/traitlets/config/application.py in catch_config_error(method=<function TerminalIPythonApp.initialize>, app=<sage.repl.interpreter.SageTerminalApp object>, *args=(None,), **kwargs={})
72 TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR = False
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 @decorator
78 def catch_config_error(method, app, *args, **kwargs):
79 """Method decorator for catching invalid config (Trait/ArgumentErrors) during init.
80
81 On a TraitError (generally caused by bad config), this will print the trait's
82 message, and exit the app.
83
84 For use on init methods, to prevent invoking excepthook on invalid input.
85 """
86 try:
---> 87 return method(app, *args, **kwargs)
method = <function TerminalIPythonApp.initialize at 0xb5e85df4>
app = <sage.repl.interpreter.SageTerminalApp object at 0xb708cc6c>
args = (None,)
kwargs = {}
88 except (TraitError, ArgumentError) as e:
89 app.print_help()
90 app.log.fatal("Bad config encountered during initialization:")
91 app.log.fatal(str(e))
92 app.log.debug("Config at the time: %s", app.config)
93 app.exit(1)
94
95
96 class ApplicationError(Exception):
97 pass
98
99
100 class LevelFormatter(logging.Formatter):
101 """Formatter with additional `highlevel` record
102
/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 0xb708cc6c>>
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>)
727 self.shell.has_sage_extensions = SAGE_EXTENSION in self.extensions
728
729 # Load the %lprun extension if available
730 try:
731 import line_profiler
732 except ImportError:
733 pass
734 else:
735 self.extensions.append('line_profiler')
736
737 if self.shell.has_sage_extensions:
738 self.extensions.remove(SAGE_EXTENSION)
739
740 # load sage extension here to get a crash if
741 # something is wrong with the sage library
--> 742 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 0xb4256c0c>>
global SAGE_EXTENSION = 'sage'
743
744
/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 0xb4256c0c>>
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 0xb6fae14c>
self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object at 0xb5e996ac>
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 # Make sure that the correct zlib library is loaded. This is needed
8 # to prevent the system zlib to be loaded instead of the Sage one.
9 # See https://trac.sagemath.org/ticket/23122
10 import zlib
11
12 # IPython calls this when starting up
13 def load_ipython_extension(*args):
14 import sage.repl.ipython_extension
---> 15 sage.repl.ipython_extension.load_ipython_extension(*args)
sage.repl.ipython_extension.load_ipython_extension = <function load_ipython_extension at 0xb4278d64>
args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 0xb5e996ac>,)
16
17
18 # Monkey-patch inspect.isfunction() to support Cython functions.
19 def isfunction(obj):
20 """
21 Check whether something is a function.
22
23 We assume that anything which has a genuine ``__code__``
24 attribute (not using ``__getattr__`` overrides) is a function.
25 This is meant to support Cython functions.
26
27 EXAMPLES::
28
29 sage: from inspect import isfunction
30 sage: def f(): pass
31 sage: isfunction(f)
/usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in wrapper(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell object>,), **kwargs={})
547 ....: if work:
548 ....: return 'foo worked'
549 ....: raise RuntimeError("foo didn't work")
550 sage: foo(False)
551 Traceback (most recent call last):
552 ...
553 RuntimeError: foo didn't work
554 sage: foo(True)
555 'foo worked'
556 sage: foo(False)
557 sage: foo(True)
558 """
559 @wraps(func)
560 def wrapper(*args, **kwargs):
561 if not wrapper.has_run:
--> 562 result = func(*args, **kwargs)
result = undefined
global func = undefined
args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 0xb5e996ac>,)
kwargs = {}
563 wrapper.has_run = True
564 return result
565 wrapper.has_run = False
566 return wrapper
567
568
569 @run_once
570 def load_ipython_extension(ip):
571 """
572 Load the extension in IPython.
573 """
574 # this modifies ip
575 SageCustomizations(shell=ip)
/usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in load_ipython_extension(ip=<sage.repl.interpreter.SageTerminalInteractiveShell object>)
560 def wrapper(*args, **kwargs):
561 if not wrapper.has_run:
562 result = func(*args, **kwargs)
563 wrapper.has_run = True
564 return result
565 wrapper.has_run = False
566 return wrapper
567
568
569 @run_once
570 def load_ipython_extension(ip):
571 """
572 Load the extension in IPython.
573 """
574 # this modifies ip
--> 575 SageCustomizations(shell=ip)
global SageCustomizations = <class 'sage.repl.ipython_extension.SageCustomizations'>
global shell = undefined
ip = <sage.repl.interpreter.SageTerminalInteractiveShell object at 0xb5e996ac>
/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>
97 from sage.misc.sh import sh
98
99 from sage.libs.all import *
100 from sage.data_structures.all import *
101 from sage.doctest.all import *
102
103 from sage.structure.all import *
104 from sage.rings.all import *
105 from sage.arith.all import *
106 from sage.matrix.all import *
107
108 from sage.symbolic.all import *
109 from sage.modules.all import *
110 from sage.monoids.all import *
111 from sage.algebras.all import *
--> 112 from sage.modular.all import *
global sage.modular.all = undefined
113 from sage.sat.all import *
114 from sage.schemes.all import *
115 from sage.graphs.all import *
116 from sage.groups.all import *
117 from sage.arith.power import generic_power as power
118 from sage.databases.all import *
119 from sage.categories.all import *
120 from sage.sets.all import *
121 from sage.probability.all import *
122 from sage.interfaces.all import *
123
124 from sage.functions.all import *
125 from sage.calculus.all import *
126
127 lazy_import('sage.tests', 'all', as_='tests', deprecation=27337)
/usr/lib/python3/dist-packages/sage/modular/all.py in <module>
1 """
2 Test for deprecations of imports into global namespace::
3
4 sage: buzzard_tpslopes
5 doctest:warning...:
6 DeprecationWarning:
7 Importing buzzard_tpslopes from here is deprecated. If you need to use it, please import it directly from sage.modular.buzzard
8 See https://trac.sagemath.org/27066 for details.
9 <function buzzard_tpslopes at ...>
10 """
11 from __future__ import absolute_import
12 from sage.misc.lazy_import import lazy_import
13
---> 14 from .quatalg.all import *
global quatalg.all = undefined
15
16 from .modsym.all import *
17
18 from .modform.all import *
19
20 from .ssmod.all import *
21
22 from .abvar.all import *
23
24 from .dirichlet import (DirichletGroup,
25 kronecker_character, kronecker_character_upside_down,
26 trivial_character)
27
28 from .arithgroup.all import (Gamma0, Gamma1, GammaH, Gamma, SL2Z,
29 ArithmeticSubgroup_Permutation,
30 CongruenceSubgroup, FareySymbol)
31
/usr/lib/python3/dist-packages/sage/modular/quatalg/__init__.py in <module>
1 from __future__ import absolute_import
2 # Modular forms using quaternion algebras -- initialization file
3
----> 4 from . import all
global all = undefined
/usr/lib/python3/dist-packages/sage/modular/quatalg/all.py in <module>
1 from __future__ import absolute_import
2
----> 3 from .brandt import BrandtModule
global brandt = undefined
global BrandtModule = undefined
/usr/lib/python3/dist-packages/sage/modular/quatalg/brandt.py in <module>
191 # it under the terms of the GNU General Public License as published by
192 # the Free Software Foundation, either version 2 of the License, or
193 # (at your option) any later version.
194 # https://www.gnu.org/licenses/
195 # ****************************************************************************
196 from __future__ import print_function
197
198 # imports
199 from sage.misc.all import prod, verbose
200 from sage.rings.all import Integer, ZZ, QQ, PolynomialRing, GF, CommutativeRing
201
202 from sage.algebras.quatalg.quaternion_algebra import QuaternionAlgebra, basis_for_quaternion_lattice
203 from sage.algebras.quatalg.quaternion_algebra_cython import rational_matrix_from_rational_quaternions
204
205 from sage.arith.all import gcd, factor, prime_divisors, kronecker, next_prime
--> 206 from sage.modular.hecke.all import (AmbientHeckeModule, HeckeSubmodule,
global sage.modular.hecke.all = undefined
global AmbientHeckeModule = undefined
global HeckeSubmodule = undefined
global HeckeModuleElement = undefined
207 HeckeModuleElement)
208 from sage.modular.dirichlet import TrivialCharacter
209 from sage.matrix.all import MatrixSpace, matrix
210 from sage.structure.richcmp import richcmp, richcmp_method
211 from sage.misc.cachefunc import cached_method
212
213
214 cache = {}
215
216
217 def BrandtModule(N, M=1, weight=2, base_ring=QQ, use_cache=True):
218 """
219 Return the Brandt module of given weight associated to the prime
220 power `p^r` and integer `M`, where `p` and `M` are coprime.
221
/usr/lib/python3/dist-packages/sage/modular/hecke/all.py in <module>
5
6 from .hecke_operator import HeckeOperator, is_HeckeOperator
7
8 from .degenmap import DegeneracyMap
9
10 from .algebra import HeckeAlgebra, is_HeckeAlgebra
11
12 from .morphism import (HeckeModuleMorphism, HeckeModuleMorphism_matrix,
13 is_HeckeModuleMorphism,
14 is_HeckeModuleMorphism_matrix)
15
16 from .element import HeckeModuleElement, is_HeckeModuleElement
17
18 from .submodule import HeckeSubmodule, is_HeckeSubmodule
19
---> 20 from .ambient_module import AmbientHeckeModule, is_AmbientHeckeModule
global ambient_module = undefined
global AmbientHeckeModule = undefined
global is_AmbientHeckeModule = undefined
/usr/lib/python3/dist-packages/sage/modular/hecke/ambient_module.py in <module>
23 from . import degenmap
24 from . import module
25 from . import submodule
26
27 import sage.modules.all
28
29 import sage.rings.all
30
31 import sage.misc.misc as misc
32
33 import sage.arith.all as arith
34
35 import sage.matrix.matrix_space as matrix_space
36 from sage.matrix.constructor import matrix
37
---> 38 from sage.modular.arithgroup.all import Gamma0 # for Sturm bound
global sage.modular.arithgroup.all = undefined
global Gamma0 = undefined
39
40 def is_AmbientHeckeModule(x):
41 r"""
42 Return True if x is of type AmbientHeckeModule.
43
44 EXAMPLES::
45
46 sage: from sage.modular.hecke.ambient_module import is_AmbientHeckeModule
47 sage: is_AmbientHeckeModule(ModularSymbols(6))
48 True
49 sage: is_AmbientHeckeModule(ModularSymbols(6).cuspidal_subspace())
50 False
51 sage: is_AmbientHeckeModule(ModularForms(11))
52 True
53 sage: is_AmbientHeckeModule(BrandtModule(2, 3))
/usr/lib/python3/dist-packages/sage/modular/arithgroup/__init__.py in <module>
1 from __future__ import absolute_import
2 # do nothing
3
----> 4 from . import all
global all = undefined
/usr/lib/python3/dist-packages/sage/modular/arithgroup/all.py in <module>
1 from __future__ import absolute_import
2 # Note: the is_xxx functions are imported to here, but not from here up to sage.modular.all, so
3 # they are invisible to the user but easy to import all in one go by other code that needs them.
4
5 from .arithgroup_generic import is_ArithmeticSubgroup
----> 6 from .congroup_generic import is_CongruenceSubgroup, CongruenceSubgroup_constructor as CongruenceSubgroup
global congroup_generic = undefined
global is_CongruenceSubgroup = undefined
global CongruenceSubgroup_constructor = undefined
global CongruenceSubgroup = undefined
7 from .congroup_gammaH import GammaH_constructor as GammaH, is_GammaH
8 from .congroup_gamma1 import Gamma1_constructor as Gamma1, is_Gamma1
9 from .congroup_gamma0 import Gamma0_constructor as Gamma0, is_Gamma0
10 from .congroup_gamma import Gamma_constructor as Gamma, is_Gamma
11 from .congroup_sl2z import SL2Z, is_SL2Z
12
13 from .arithgroup_perm import ArithmeticSubgroup_Permutation
14
15 from .congroup import (degeneracy_coset_representatives_gamma0,
16 degeneracy_coset_representatives_gamma1)
17
18 from .farey_symbol import Farey as FareySymbol
19
/usr/lib/python3/dist-packages/sage/modular/arithgroup/congroup_generic.py in <module>
13 #
14 # Copyright (C) 2004, 2006 William Stein <wstein at gmail.com>
15 #
16 # Distributed under the terms of the GNU General Public License (GPL)
17 #
18 # The full text of the GPL is available at:
19 #
20 # https://www.gnu.org/licenses/
21 #
22 ################################################################################
23 from __future__ import absolute_import
24
25 from sage.rings.all import QQ, ZZ, Zmod
26 from sage.arith.all import gcd
27 from sage.sets.set import Set
---> 28 from sage.groups.matrix_gps.all import MatrixGroup
global sage.groups.matrix_gps.all = undefined
global MatrixGroup = undefined
29 from sage.matrix.matrix_space import MatrixSpace
30 from sage.misc.misc_c import prod
31 from .arithgroup_generic import ArithmeticSubgroup
32
33
34 def CongruenceSubgroup_constructor(*args):
35 r"""
36 Attempt to create a congruence subgroup from the given data.
37
38 The allowed inputs are as follows:
39
40 - A :class:`~sage.groups.matrix_gps.matrix_group.MatrixGroup` object. This
41 must be a group of matrices over `\ZZ / N\ZZ` for some `N`, with
42 determinant 1, in which case the function will return the group of
43 matrices in `SL(2, \ZZ)` whose reduction mod `N` is in the given group.
/usr/lib/python3/dist-packages/sage/groups/matrix_gps/all.py in <module>
1 from sage.misc.lazy_import import lazy_import
2
3 lazy_import('sage.groups.matrix_gps.linear', 'GL')
4 lazy_import('sage.groups.matrix_gps.linear', 'SL')
5 lazy_import('sage.groups.matrix_gps.symplectic', 'Sp')
6 lazy_import('sage.groups.matrix_gps.unitary', 'SU')
7 lazy_import('sage.groups.matrix_gps.unitary', 'GU')
8 lazy_import('sage.groups.matrix_gps.orthogonal', 'GO')
9 lazy_import('sage.groups.matrix_gps.orthogonal', 'SO')
10 lazy_import('sage.groups.matrix_gps.finitely_generated', 'MatrixGroup')
11 lazy_import('sage.groups.matrix_gps.finitely_generated', 'QuaternionMatrixGroupGF3')
12
---> 13 import sage.groups.matrix_gps.pickling_overrides
global sage.groups.matrix_gps.pickling_overrides = undefined
/usr/lib/python3/dist-packages/sage/groups/matrix_gps/pickling_overrides.py in <module>
1 """
2 Overrides to unpickle old matrix groups
3 """
4
5 from sage.structure.sage_object import register_unpickle_override
6
----> 7 from sage.groups.matrix_gps.finitely_generated import FinitelyGeneratedMatrixGroup_gap
global sage.groups.matrix_gps.finitely_generated = undefined
global FinitelyGeneratedMatrixGroup_gap = undefined
8 from sage.groups.matrix_gps.group_element import MatrixGroupElement_gap
9 from sage.groups.matrix_gps.linear import GL, LinearMatrixGroup_generic
10
11
12
13 class LegacyMatrixGroup(FinitelyGeneratedMatrixGroup_gap):
14
15 def __setstate__(self, state):
16 """
17 Restore from old pickle.
18
19 EXAMPLES::
20
21 sage: from sage.groups.matrix_gps.pickling_overrides import LegacyMatrixGroup
22 sage: state = dict()
23 sage: state['_MatrixGroup_gap__n'] = 2
24 sage: state['_MatrixGroup_gap__R'] = GF(3)
25 sage: state['_gensG'] = [ matrix(GF(3), [[1,2],[0,1]]) ]
26 sage: M = LegacyMatrixGroup.__new__(LegacyMatrixGroup)
27 sage: M.__setstate__(state)
28 sage: M
29 Matrix group over Finite Field of size 3 with 1 generators (
30 [1 2]
31 [0 1]
/usr/lib/python3/dist-packages/sage/groups/matrix_gps/finitely_generated.py in <module>
67 from sage.rings.all import QQbar
68 from sage.interfaces.gap import gap
69 from sage.structure.element import is_Matrix
70 from sage.matrix.matrix_space import MatrixSpace, is_MatrixSpace
71 from sage.matrix.all import matrix
72 from sage.structure.sequence import Sequence
73 from sage.misc.cachefunc import cached_method
74 from sage.modules.free_module_element import vector
75 from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
76 from sage.rings.power_series_ring import PowerSeriesRing
77 from sage.rings.fraction_field import FractionField
78 from sage.misc.functional import cyclotomic_polynomial
79 from sage.rings.number_field.number_field import CyclotomicField
80 from sage.combinat.integer_vector import IntegerVectors
81
---> 82 from sage.groups.matrix_gps.matrix_group import (
global sage.groups.matrix_gps.matrix_group = undefined
global MatrixGroup_generic = undefined
global MatrixGroup_gap = undefined
83 MatrixGroup_generic, MatrixGroup_gap )
84 from sage.groups.matrix_gps.group_element import is_MatrixGroupElement
85
86
87 def normalize_square_matrices(matrices):
88 """
89 Find a common space for all matrices.
90
91 OUTPUT:
92
93 A list of matrices, all elements of the same matrix space.
94
95 EXAMPLES::
96
97 sage: from sage.groups.matrix_gps.finitely_generated import normalize_square_matrices
/usr/lib/python3/dist-packages/sage/groups/matrix_gps/matrix_group.py in <module>
48 # (at your option) any later version.
49 # https://www.gnu.org/licenses/
50 # ****************************************************************************
51
52 from __future__ import absolute_import
53
54 from sage.categories.groups import Groups
55 from sage.categories.rings import Rings
56 from sage.rings.integer import is_Integer
57 from sage.matrix.matrix_space import MatrixSpace
58 from sage.misc.latex import latex
59 from sage.structure.richcmp import (richcmp_not_equal, rich_to_bool,
60 richcmp_method, richcmp)
61 from sage.misc.cachefunc import cached_method
62 from sage.groups.group import Group
---> 63 from sage.groups.libgap_wrapper import ParentLibGAP
global sage.groups.libgap_wrapper = undefined
global ParentLibGAP = undefined
64 from sage.groups.libgap_mixin import GroupMixinLibGAP
65
66 from sage.groups.matrix_gps.group_element import (
67 MatrixGroupElement_generic, MatrixGroupElement_gap)
68
69 #################################################################
70
71 def is_MatrixGroup(x):
72 """
73 Test whether ``x`` is a matrix group.
74
75 EXAMPLES::
76
77 sage: from sage.groups.matrix_gps.matrix_group import is_MatrixGroup
78 sage: is_MatrixGroup(MatrixSpace(QQ,3))
/usr/lib/python3/dist-packages/sage/libs/gap/element.pxd in init sage.groups.libgap_wrapper (build/cythonized/sage/groups/libgap_wrapper.c:10128)()
21 cdef GapElement make_any_gap_element(parent, Obj obj)
22 cdef GapElement make_GapElement(parent, Obj obj)
23 cdef GapElement_List make_GapElement_List(parent, Obj obj)
24 cdef GapElement_Record make_GapElement_Record(parent, Obj obj)
25 cdef GapElement_Integer make_GapElement_Integer(parent, Obj obj)
26 cdef GapElement_Rational make_GapElement_Rational(parent, Obj obj)
27 cdef GapElement_String make_GapElement_String(parent, Obj obj)
28 cdef GapElement_Boolean make_GapElement_Boolean(parent, Obj obj)
29 cdef GapElement_Function make_GapElement_Function(parent, Obj obj)
30
31 cdef char *capture_stdout(Obj, Obj)
32 cdef char *gap_element_str(Obj)
33 cdef char *gap_element_repr(Obj)
34
35
---> 36 cdef class GapElement(RingElement):
global cdef = undefined
global GapElement = undefined
global RingElement = undefined
37
38 # the pointer to the GAP object (memory managed by GASMAN)
39 cdef Obj value
40
41 # comparison
42 cdef bint _compare_by_id
43 cdef bint _compare_equal(self, Element other) except -2
44 cdef bint _compare_less(self, Element other) except -2
45 cpdef _set_compare_by_id(self)
46 cpdef _assert_compare_by_id(self)
47
48 cdef _initialize(self, parent, Obj obj)
49 cpdef _type_number(self)
50 cpdef is_bool(self)
51 cpdef _add_(self, other)
ImportError: /usr/lib/python3/dist-packages/sage/libs/gap/element.cpython-37m-i386-linux-gnu.so: undefined symbol: GAP_EnterStack_
***************************************************************************
History of session input:
*** Last line of input (may not be in above history):
More information about the debian-science-maintainers
mailing list