Hello,

I would appreciate your feedback on a Sage crash that I'm facing after
several trials. Please find attached the associated report along with some
potentially relevant information below:

- Which operating system: MacOS Mojave
*$ sw_vers*

ProductName: Mac OS X

ProductVersion: 10.14.6

BuildVersion: 18G95


*$ gcc --version*

Configured with: --prefix=/Library/Developer/CommandLineTools/usr
--with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1

Apple LLVM version 10.0.1 (clang-1001.0.46.4)

Target: x86_64-apple-darwin18.7.0

Thread model: posix

InstalledDir: /Library/Developer/CommandLineTools/usr/bin



- How Sage was installed + How to reproduce the crash:
Step 0: Downloading *sage-9.1-OSX_10.11.6-x86_64.tar.bz2* (tried also .dmg
and .app.dmg, same results) from
http://www-ftp.lip6.fr/pub/math/sagemath/osx/intel/index.html , then moving
the *Sagemath* folder into /Applications/.
Step 1: Running /Applications/SageMath/sage and adding sudo ln -s
/Applications/SageMath/sage /usr/local/bin/sage
*Results*: running sage in terminal launches sage which operates correctly.
Step 2: (Note: CPLEX is already installed and correctly configured)
 Running *sage -i sage_numerical_backends_cplex* as described for Sage 9.1
in https://github.com/mkoeppe/sage-numerical-backends-cplex
*Results: *The installation is successful but now running sage yields an
error (more details in the crash report attached):

ImportError:
dlopen(/Applications/SageMath/local/lib/python3.7/site-packages/sage/symbolic/
ring.cpython-37m-darwin.so, 2): Symbol not found:
__ZNSt3__16vectorIN5GiNaC2exENS_9allocatorIS2_EEE11__vallocateEm

  Referenced from:
/Applications/SageMath/local/lib/python3.7/site-packages/sage/symbolic/
ring.cpython-37m-darwin.so

  Expected in: flat namespace

 in /Applications/SageMath/local/lib/python3.7/site-packages/sage/symbolic/
ring.cpython-37m-darwin.so



Thank you and best regards,
H.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-support/CANmzTwZ5uqTbrj2skMouCR4CG%2B7GkgogidZ70PKc0iYBbR_TKQ%40mail.gmail.com.
***************************************************************************

IPython post-mortem report

{'commit_hash': '033ab93c7',
 'commit_source': 'installation',
 'default_encoding': 'UTF-8',
 'ipython_path': 
'/Applications/SageMath/local/lib/python3.7/site-packages/IPython',
 'ipython_version': '5.8.0',
 'os_name': 'posix',
 'platform': 'Darwin-18.7.0-x86_64-i386-64bit',
 'sys_executable': '/Applications/SageMath/local/bin/python3',
 'sys_platform': 'darwin',
 'sys_version': '3.7.3 (default, May 23 2020, 09:48:14) \n'
                '[Clang 7.3.0 (clang-703.0.31)]'}

***************************************************************************



***************************************************************************

Crash traceback:

---------------------------------------------------------------------------
---------------------------------------------------------------------------
ImportError          Python 3.7.3: /Applications/SageMath/local/bin/python3
                                                   Wed Oct 14 18:05:59 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.
/Applications/SageMath/src/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 0x10273d278>>
     16 app.start()

</Applications/SageMath/local/lib/python3.7/site-packages/decorator.py:decorator-gen-110>
 in initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)

/Applications/SageMath/local/lib/python3.7/site-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 0x1035a6950>
        app = <sage.repl.interpreter.SageTerminalApp object at 0x10273d278>
        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 

/Applications/SageMath/local/lib/python3.7/site-packages/IPython/terminal/ipapp.py
 in initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
    301 
    302         return super(TerminalIPythonApp, self).parse_command_line(argv)
    303     
    304     @catch_config_error
    305     def initialize(self, argv=None):
    306         """Do actions after construct, but before starting the app."""
    307         super(TerminalIPythonApp, self).initialize(argv)
    308         if self.subapp is not None:
    309             # don't bother initializing further, starting subapp
    310             return
    311         # print self.extra_args
    312         if self.extra_args and not self.something_to_run:
    313             self.file_to_run = self.extra_args[0]
    314         self.init_path()
    315         # create the shell
--> 316         self.init_shell()
        self.init_shell = <bound method SageTerminalApp.init_shell of 
<sage.repl.interpreter.SageTerminalApp object at 0x10273d278>>
    317         # and draw the banner
    318         self.init_banner()
    319         # Now a variety of things that happen after the banner is 
printed.
    320         self.init_gui_pylab()
    321         self.init_extensions()
    322         self.init_code()
    323 
    324     def init_shell(self):
    325         """initialize the InteractiveShell instance"""
    326         # Create an InteractiveShell instance.
    327         # shell.display_banner should always be False for the terminal
    328         # based app, because we call shell.show_banner() by hand below
    329         # so the banner shows *before* all extension loading stuff.
    330         self.shell = self.interactive_shell_class.instance(parent=self,
    331                         profile_dir=self.profile_dir,

/Applications/SageMath/local/lib/python3.7/site-packages/sage/repl/interpreter.py
 in init_shell(self=<sage.repl.interpreter.SageTerminalApp object>)
    772         self.shell.has_sage_extensions = SAGE_EXTENSION in 
self.extensions
    773 
    774         # Load the %lprun extension if available
    775         try:
    776             import line_profiler
    777         except ImportError:
    778             pass
    779         else:
    780             self.extensions.append('line_profiler')
    781 
    782         if self.shell.has_sage_extensions:
    783             self.extensions.remove(SAGE_EXTENSION)
    784 
    785             # load sage extension here to get a crash if
    786             # something is wrong with the sage library
--> 787             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 0x104d3bcf8>>
        global SAGE_EXTENSION = 'sage'
    788 
    789 

/Applications/SageMath/local/lib/python3.7/site-packages/IPython/core/extensions.py
 in load_extension(self=<IPython.core.extensions.ExtensionManager object>, 
module_str='sage')
     70 
     71         Returns the string "already loaded" if the extension is already 
loaded,
     72         "no load function" if the module doesn't have a 
load_ipython_extension
     73         function, or None if it succeeded.
     74         """
     75         if module_str in self.loaded:
     76             return "already loaded"
     77         
     78         from IPython.utils.syspathcontext import prepended_to_syspath
     79         
     80         with self.shell.builtin_trap:
     81             if module_str not in sys.modules:
     82                 with prepended_to_syspath(self.ipython_extension_dir):
     83                     __import__(module_str)
     84             mod = sys.modules[module_str]
---> 85             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 0x104d3bcf8>>
        mod = <module 'sage' from 
'/Applications/SageMath/local/lib/python3.7/site-packages/sage/__init__.py'>
     86                 self.loaded.add(module_str)
     87             else:
     88                 return "no load function"
     89 
     90     def unload_extension(self, module_str):
     91         """Unload an IPython extension by its module name.
     92 
     93         This function looks up the extension's name in ``sys.modules`` 
and
     94         simply calls ``mod.unload_ipython_extension(self)``.
     95         
     96         Returns the string "no unload function" if the extension 
doesn't define
     97         a function to unload itself, "not loaded" if the extension 
isn't loaded,
     98         otherwise None.
     99         """
    100         if module_str not in self.loaded:

/Applications/SageMath/local/lib/python3.7/site-packages/IPython/core/extensions.py
 in _call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager 
object>, mod=<module 'sage' from 
'/Applications/SageMath/local/lib/python3.7/site-packages/sage/__init__.py'>)
    117         """
    118         from IPython.utils.syspathcontext import prepended_to_syspath
    119 
    120         if (module_str in self.loaded) and (module_str in sys.modules):
    121             self.unload_extension(module_str)
    122             mod = sys.modules[module_str]
    123             with prepended_to_syspath(self.ipython_extension_dir):
    124                 reload(mod)
    125             if self._call_load_ipython_extension(mod):
    126                 self.loaded.add(module_str)
    127         else:
    128             self.load_extension(module_str)
    129 
    130     def _call_load_ipython_extension(self, mod):
    131         if hasattr(mod, 'load_ipython_extension'):
--> 132             mod.load_ipython_extension(self.shell)
        mod.load_ipython_extension = <function load_ipython_extension at 
0x1027cb8c8>
        self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object 
at 0x10269bbe0>
    133             return True
    134 
    135     def _call_unload_ipython_extension(self, mod):
    136         if hasattr(mod, 'unload_ipython_extension'):
    137             mod.unload_ipython_extension(self.shell)
    138             return True
    139 
    140     def install_extension(self, url, filename=None):
    141         """Download and install an IPython extension. 
    142 
    143         If filename is given, the file will be so named (inside the 
extension
    144         directory). Otherwise, the name from the URL will be used. The 
file must
    145         have a .py or .zip extension; otherwise, a ValueError will be 
raised.
    146 
    147         Returns the full path to the installed file.

/Applications/SageMath/local/lib/python3.7/site-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 0x104f76840>
        args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 
0x10269bbe0>,)
     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)

/Applications/SageMath/local/lib/python3.7/site-packages/sage/repl/ipython_extension.py
 in wrapper(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell 
object>,), **kwargs={})
    549         ....:     if work:
    550         ....:         return 'foo worked'
    551         ....:     raise RuntimeError("foo didn't work")
    552         sage: foo(False)
    553         Traceback (most recent call last):
    554         ...
    555         RuntimeError: foo didn't work
    556         sage: foo(True)
    557         'foo worked'
    558         sage: foo(False)
    559         sage: foo(True)
    560     """
    561     @wraps(func)
    562     def wrapper(*args, **kwargs):
    563         if not wrapper.has_run:
--> 564             result = func(*args, **kwargs)
        result = undefined
        global func = undefined
        args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 
0x10269bbe0>,)
        kwargs = {}
    565             wrapper.has_run = True
    566             return result
    567     wrapper.has_run = False
    568     return wrapper
    569 
    570 
    571 @run_once
    572 def load_ipython_extension(ip):
    573     """
    574     Load the extension in IPython.
    575     """
    576     # this modifies ip
    577     SageCustomizations(shell=ip)

/Applications/SageMath/local/lib/python3.7/site-packages/sage/repl/ipython_extension.py
 in 
load_ipython_extension(ip=<sage.repl.interpreter.SageTerminalInteractiveShell 
object>)
    562     def wrapper(*args, **kwargs):
    563         if not wrapper.has_run:
    564             result = func(*args, **kwargs)
    565             wrapper.has_run = True
    566             return result
    567     wrapper.has_run = False
    568     return wrapper
    569 
    570 
    571 @run_once
    572 def load_ipython_extension(ip):
    573     """
    574     Load the extension in IPython.
    575     """
    576     # this modifies ip
--> 577     SageCustomizations(shell=ip)
        global SageCustomizations = <class 
'sage.repl.ipython_extension.SageCustomizations'>
        global shell = undefined
        ip = <sage.repl.interpreter.SageTerminalInteractiveShell object at 
0x10269bbe0>

/Applications/SageMath/local/lib/python3.7/site-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)

/Applications/SageMath/local/lib/python3.7/site-packages/sage/all.py in 
<module>()
    119 from sage.misc.all       import *         # takes a while
    120 from sage.typeset.all    import *
    121 from sage.repl.all       import *
    122 
    123 from sage.misc.sh import sh
    124 
    125 from sage.libs.all       import *
    126 from sage.data_structures.all import *
    127 from sage.doctest.all    import *
    128 
    129 from sage.structure.all  import *
    130 from sage.rings.all      import *
    131 from sage.arith.all      import *
    132 from sage.matrix.all     import *
    133 
--> 134 from sage.symbolic.all   import *
        global sage.symbolic.all = undefined
    135 from sage.modules.all    import *
    136 from sage.monoids.all    import *
    137 from sage.algebras.all   import *
    138 from sage.modular.all    import *
    139 from sage.sat.all        import *
    140 from sage.schemes.all    import *
    141 from sage.graphs.all     import *
    142 from sage.groups.all     import *
    143 from sage.arith.power    import generic_power as power
    144 from sage.databases.all  import *
    145 from sage.categories.all import *
    146 from sage.sets.all       import *
    147 from sage.probability.all import *
    148 from sage.interfaces.all import *
    149 

/Applications/SageMath/local/lib/python3.7/site-packages/sage/symbolic/all.py 
in <module>()
      1 from __future__ import absolute_import
      2 
----> 3 from sage.libs.pynac.pynac import I
        global sage.libs.pynac.pynac = undefined
        global I = undefined
      4 i = I
      5 
      6 from .ring import SR
      7 from .constants import (pi, e, NaN, golden_ratio, log2, euler_gamma, 
catalan,
      8                        khinchin, twinprime, mertens, glaisher)
      9 from .expression import Expression, solve_diophantine, hold
     10 from .callable import CallableSymbolicExpressionRing
     11 
     12 from sage.symbolic.relation import solve, solve_mod, solve_ineq
     13 from sage.symbolic.assumptions import assume, forget, assumptions, 
assuming
     14 
     15 from .units import units

/Applications/SageMath/local/lib/python3.7/site-packages/sage/symbolic/expression.pxd
 in init sage.libs.pynac.pynac 
(build/cythonized/sage/libs/pynac/pynac.cpp:30410)()
      1 from sage.libs.pynac.pynac cimport GEx
      2 from sage.structure.element cimport CommutativeRingElement
      3 
----> 4 cdef class Expression(CommutativeRingElement):
        global cdef = undefined
        global Expression = undefined
        global CommutativeRingElement = undefined
      5     cdef GEx _gobj
      6     cpdef _add_(self, other)
      7     cpdef _mul_(self, other)
      8     cpdef _pow_(self, other)
      9     cdef Expression coerce_in(self, z)
     10     cpdef object _eval_self(self, R)
     11     cpdef object _convert(self, R)
     12     cpdef bint is_polynomial(self, var)
     13     cpdef bint is_relational(self)
     14     cpdef bint is_infinity(self)
     15     cpdef bint is_positive_infinity(self)
     16     cpdef bint is_negative_infinity(self)
     17     cpdef object pyobject(self)
     18     cpdef Expression _subs_expr(self, expr)
     19     cpdef int _cmp_add(Expression left, Expression right) except -2
     20     cpdef int _cmp_mul(Expression left, Expression right) except -2
     21     cdef bint _rel_equal1(Expression self, Expression other) except -1
     22     cdef bint _rel_equal2(Expression self, Expression other) except -1
     23 
     24 cpdef bint is_Expression(x)
     25 cdef Expression new_Expression_from_GEx(parent, GEx juice)
     26 cdef Expression new_Expression_from_pyobject(parent, x)

/Applications/SageMath/local/lib/python3.7/site-packages/sage/symbolic/expression.pyx
 in init sage.symbolic.expression 
(build/cythonized/sage/symbolic/expression.cpp:75237)()
    145 #       Copyright (C) 2008 William Stein <wst...@gmail.com>
    146 #       Copyright (C) 2008 Burcin Erocal <bur...@erocal.org>
    147 #
    148 # This program is free software: you can redistribute it and/or modify
    149 # it under the terms of the GNU General Public License as published by
    150 # the Free Software Foundation, either version 2 of the License, or
    151 # (at your option) any later version.
    152 #                  https://www.gnu.org/licenses/
    153 # 
****************************************************************************
    154 
    155 from cysignals.signals cimport sig_on, sig_off
    156 from sage.ext.cplusplus cimport ccrepr, ccreadstr
    157 
    158 from inspect import isfunction
    159 import operator
--> 160 from . import ring
        global ring = undefined
    161 import sage.rings.integer
    162 import sage.rings.rational
    163 
    164 from cpython.object cimport Py_EQ, Py_NE, Py_LE, Py_GE, Py_LT, Py_GT
    165 
    166 from sage.cpython.string cimport str_to_bytes
    167 from sage.symbolic.comparison import mixed_order
    168 from sage.symbolic.getitem cimport OperandsWrapper
    169 from sage.symbolic.series cimport SymbolicSeries
    170 from sage.symbolic.complexity_measures import string_length
    171 from sage.symbolic.function import get_sfunction_from_serial, 
SymbolicFunction
    172 cimport sage.symbolic.comparison
    173 from sage.rings.rational import Rational
    174 from sage.misc.derivative import multi_derivative
    175 from sage.misc.decorators import sage_wraps

ImportError: 
dlopen(/Applications/SageMath/local/lib/python3.7/site-packages/sage/symbolic/ring.cpython-37m-darwin.so,
 2): Symbol not found: 
__ZNSt3__16vectorIN5GiNaC2exENS_9allocatorIS2_EEE11__vallocateEm
  Referenced from: 
/Applications/SageMath/local/lib/python3.7/site-packages/sage/symbolic/ring.cpython-37m-darwin.so
  Expected in: flat namespace
 in 
/Applications/SageMath/local/lib/python3.7/site-packages/sage/symbolic/ring.cpython-37m-darwin.so

***************************************************************************

History of session input:
*** Last line of input (may not be in above history):

Reply via email to