Hi,
I have attempted to install SageMath 8.5 on a 15" 3.1 GHz Intel Core i7 16GB 2017 MacBook Pro running Mac OS 10.14.2 1. First the App version via DMG. This caused my MacBook Pro to restart while attempting to open the .DMG 2. Second via the Terminal version via .tar.bz2. This generated the arched crash log when attempting to launch via the Terminal Regards, Adam Hausknecht Prof. Adam O. Hausknecht Department of Mathematics UMass Dartmouth 285 Old Westport Road, North Dartmouth 02747 ahauskne...@umassd.edu 508-999-8322 LARTS 394B -- 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 post to this group, send email to sage-support@googlegroups.com. Visit this group at https://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
*************************************************************************** IPython post-mortem report {'commit_hash': u'033ab93c7', 'commit_source': 'installation', 'default_encoding': 'UTF-8', 'ipython_path': '/Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/IPython', 'ipython_version': '5.8.0', 'os_name': 'posix', 'platform': 'Darwin-18.2.0-x86_64-64bit', 'sys_executable': '/Users/ahausknecht/SageMath/local/bin/python2', 'sys_platform': 'darwin', 'sys_version': '2.7.15 (default, Dec 25 2018, 12:25:38) \n[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.5)]'} *************************************************************************** *************************************************************************** Crash traceback: --------------------------------------------------------------------------- --------------------------------------------------------------------------- RuntimeError Python 2.7.15: /Users/ahausknecht/SageMath/local/bin/python2 Sat Dec 29 13:34:26 2018 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. /Users/ahausknecht/SageMath/src/bin/sage-ipython in <module>() 1 #!/usr/bin/env sage-python23 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 SageTerminalApp.initialize of <sage.repl.interpreter.SageTerminalApp object at 0x107f18190>> 16 app.start() <decorator-gen-110> in initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None) /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/traitlets/config/application.py in catch_config_error(method=<function 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 initialize at 0x108d4bf50> app = <sage.repl.interpreter.SageTerminalApp object at 0x107f18190> 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 /Users/ahausknecht/SageMath/local/lib/python2.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 0x107f18190>> 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, /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/sage/repl/interpreter.py in init_shell(self=<sage.repl.interpreter.SageTerminalApp object>) 745 self.shell.has_sage_extensions = SAGE_EXTENSION in self.extensions 746 747 # Load the %lprun extension if available 748 try: 749 import line_profiler 750 except ImportError: 751 pass 752 else: 753 self.extensions.append('line_profiler') 754 755 if self.shell.has_sage_extensions: 756 self.extensions.remove(SAGE_EXTENSION) 757 758 # load sage extension here to get a crash if 759 # something is wrong with the sage library --> 760 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 0x1090ac1d0>> global SAGE_EXTENSION = 'sage' 761 762 /Users/ahausknecht/SageMath/local/lib/python2.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 0x1090ac1d0>> mod = <module 'sage' from '/Users/ahausknecht/SageMath/local/lib/python2.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: /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/IPython/core/extensions.py in _call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager object>, mod=<module 'sage' from '/Users/ahausknecht/SageMath...al/lib/python2.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 0x107e63410> self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object at 0x108d4ae90> 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. /Users/ahausknecht/SageMath/local/lib/python2.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 0x1092f1de8> args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 0x108d4ae90>,) 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) /Users/ahausknecht/SageMath/local/lib/python2.7/site-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 0x108d4ae90>,) 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) /Users/ahausknecht/SageMath/local/lib/python2.7/site-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 0x108d4ae90> /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/sage/repl/ipython_extension.py in __init__(self=<sage.repl.ipython_extension.SageCustomizations object>, shell=<sage.repl.interpreter.SageTerminalInteractiveShell object>) 418 def __init__(self, shell=None): 419 """ 420 Initialize the Sage plugin. 421 """ 422 self.shell = shell 423 424 self.auto_magics = SageMagics(shell) 425 self.shell.register_magics(self.auto_magics) 426 427 import sage.misc.edit_module as edit_module 428 self.shell.set_hook('editor', edit_module.edit_devel) 429 430 self.init_inspector() 431 self.init_line_transforms() 432 --> 433 import sage.all # until sage's import hell is fixed sage.all = undefined 434 435 self.shell.verbose_quit = True 436 self.set_quit_hook() 437 438 self.register_interface_magics() 439 440 if SAGE_IMPORTALL == 'yes': 441 self.init_environment() 442 443 def register_interface_magics(self): 444 """ 445 Register magics for each of the Sage interfaces 446 """ 447 from sage.repl.interface_magic import InterfaceMagic 448 InterfaceMagic.register_all(self.shell) /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/sage/all.py in <module>() 79 from time import sleep 80 from functools import reduce # in order to keep reduce in python3 81 82 import sage.misc.lazy_import 83 from sage.misc.all import * # takes a while 84 from sage.typeset.all import * 85 from sage.repl.all import * 86 87 from sage.misc.sh import sh 88 89 from sage.libs.all import * 90 from sage.data_structures.all import * 91 from sage.doctest.all import * 92 93 from sage.structure.all import * ---> 94 from sage.rings.all import * global sage.rings.all = undefined 95 from sage.arith.all import * 96 from sage.matrix.all import * 97 98 from sage.symbolic.all import * 99 from sage.modules.all import * 100 from sage.monoids.all import * 101 from sage.algebras.all import * 102 from sage.modular.all import * 103 from sage.sat.all import * 104 from sage.schemes.all import * 105 from sage.graphs.all import * 106 from sage.groups.all import * 107 from sage.arith.power import generic_power as power 108 from sage.databases.all import * 109 from sage.categories.all import * /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/sage/rings/all.py in <module>() 73 from .real_mpfr import (RealField, RR, 74 create_RealNumber as RealNumber) # this is used by the preparser to wrap real literals -- very important. 75 Reals = RealField 76 77 from .real_double import RealDoubleField, RDF, RealDoubleElement 78 79 from .real_lazy import RealLazyField, RLF, ComplexLazyField, CLF 80 81 from sage.rings.real_arb import RealBallField, RBF 82 83 # Polynomial Rings and Polynomial Quotient Rings 84 from .polynomial.all import * 85 86 87 # Algebraic numbers ---> 88 from .qqbar import (AlgebraicRealField, AA, global qqbar = undefined global AlgebraicRealField = undefined global AA = undefined global AlgebraicReal = undefined global AlgebraicField = undefined global QQbar = undefined global AlgebraicNumber = undefined global number_field_elements_from_algebraics = undefined 89 AlgebraicReal, 90 AlgebraicField, QQbar, 91 AlgebraicNumber, 92 number_field_elements_from_algebraics) 93 from .universal_cyclotomic_field import UniversalCyclotomicField, E 94 95 # Intervals 96 from .real_mpfi import (RealIntervalField, 97 RIF, 98 RealInterval) 99 100 # Complex numbers 101 from .complex_field import ComplexField 102 from .complex_number import (create_ComplexNumber as ComplexNumber) 103 Complexes = ComplexField /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/sage/rings/qqbar.py in <module>() 2138 if single_number: 2139 nums = nums[0] 2140 2141 if same_field: 2142 hom = fld.hom([gen.root_as_algebraic()], codomain=algebraic_field) 2143 else: 2144 hom = fld.hom([gen.root_as_algebraic()]) 2145 2146 return (fld, nums, hom) 2147 2148 # Cache some commonly-used polynomial rings 2149 QQx = QQ['x'] 2150 QQx_x = QQx.gen() 2151 QQy = QQ['y'] 2152 QQy_y = QQy.gen() -> 2153 QQxy = QQ['x', 'y'] global QQxy = undefined global QQ = None 2154 QQxy_x = QQxy.gen(0) 2155 QQxy_y = QQxy.gen(1) 2156 2157 2158 def cmp_elements_with_same_minpoly(a, b, p): 2159 r""" 2160 Compare the algebraic elements ``a`` and ``b`` knowing that they have the 2161 same minimal polynomial ``p``. 2162 2163 This is an helper function for comparison of algebraic elements (i.e. the 2164 methods :meth:`AlgebraicNumber._richcmp_` and 2165 :meth:`AlgebraicReal._richcmp_`). 2166 2167 INPUT: 2168 /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/sage/structure/parent.pyx in sage.structure.parent.Parent.__getitem__ (build/cythonized/sage/structure/parent.c:11156)() 1207 sage: class A(Parent): 1208 ....: def __init__(self): 1209 ....: Parent.__init__(self, category=As()) 1210 sage: a = A() 1211 sage: a[1] 1212 'coucou' 1213 """ 1214 try: 1215 meth = super(Parent, self).__getitem__ 1216 except AttributeError: 1217 # needed when self is a Cython object 1218 try: 1219 meth = self.getattr_from_category('__getitem__') 1220 except AttributeError: 1221 return self.list()[n] -> 1222 return meth(n) global meth = undefined global n = undefined 1223 1224 ################################################################################# 1225 # Generators and Homomorphisms 1226 ################################################################################# 1227 1228 def _is_valid_homomorphism_(self, codomain, im_gens): 1229 r""" 1230 Return True if ``im_gens`` defines a valid homomorphism 1231 from self to codomain; otherwise return False. 1232 1233 If determining whether or not a homomorphism is valid has not 1234 been implemented for this ring, then a NotImplementedError exception 1235 is raised. 1236 """ 1237 raise NotImplementedError("Verification of correctness of homomorphisms from %s not yet implemented."%self) /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/sage/categories/rings.py in __getitem__(self=Rational Field, arg=('x', 'y')) 1072 and elt.imag().is_zero()): 1073 emb = RLF(elt) 1074 else: 1075 emb = CLF(elt) 1076 return self.extension(minpolys[0], names[0], embedding=emb) 1077 try: 1078 # Doing the extension all at once is best, if possible... 1079 return self.extension(minpolys, names) 1080 except (TypeError, ValueError): 1081 # ...but we can also construct it iteratively 1082 return reduce(lambda R, ext: R.extension(*ext), zip(minpolys, names), self) 1083 1084 # 2. Otherwise, try to return a polynomial ring 1085 1086 from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing -> 1087 return PolynomialRing(self, elts) PolynomialRing = <function PolynomialRing at 0x10db56320> self = Rational Field elts = ('x', 'y') 1088 1089 class ElementMethods: 1090 def is_unit(self): 1091 r""" 1092 Return whether this element is a unit in the ring. 1093 1094 .. NOTE:: 1095 1096 This is a generic implementation for (non-commutative) rings 1097 which only works for the one element, its additive inverse, and 1098 the zero element. Most rings should provide a more specialized 1099 implementation. 1100 1101 EXAMPLES:: 1102 /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/sage/rings/polynomial/polynomial_ring_constructor.py in PolynomialRing(base_ring=Rational Field, *args=(('x', 'y'),), **kwds={}) 633 names = normalize_names(n, names) 634 635 # At this point, we have only handled the "names" keyword if it was 636 # needed. Since we know the variable names, it would logically be 637 # an error to specify an additional "names" keyword. However, 638 # people often abuse the preparser with 639 # R.<x> = PolynomialRing(QQ, 'x') 640 # and we allow this for historical reasons. However, the names 641 # must be consistent! 642 if "names" in kwds: 643 kwnames = kwds.pop("names") 644 if kwnames != names: 645 raise TypeError("variable names specified twice inconsistently: %r and %r" % (names, kwnames)) 646 647 if multivariate or len(names) != 1: --> 648 return _multi_variate(base_ring, names, **kwds) global _multi_variate = <function _multi_variate at 0x10db56578> base_ring = Rational Field names = ('x', 'y') kwds = {} 649 else: 650 return _single_variate(base_ring, names, **kwds) 651 652 653 def unpickle_PolynomialRing(base_ring, arg1=None, arg2=None, sparse=False): 654 """ 655 Custom unpickling function for polynomial rings. 656 657 This has the same positional arguments as the old 658 ``PolynomialRing`` constructor before :trac:`23338`. 659 """ 660 args = [arg for arg in (arg1, arg2) if arg is not None] 661 return PolynomialRing(base_ring, *args, sparse=sparse) 662 663 from sage.misc.persist import register_unpickle_override /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/sage/rings/polynomial/polynomial_ring_constructor.py in _multi_variate(base_ring=Rational Field, names=('x', 'y'), sparse=True, order=Degree reverse lexicographic term order, implementation=None) 761 from sage.rings.polynomial.term_order import TermOrder 762 n = len(names) 763 order = TermOrder(order, n) 764 765 # "implementation" must be last 766 key = [base_ring, names, n, order, implementation] 767 R = _get_from_cache(key) 768 if R is not None: 769 return R 770 771 # Multiple arguments for the "implementation" keyword which actually 772 # yield the same implementation. We need this for caching. 773 implementation_names = set([implementation]) 774 775 if implementation is None or implementation == "singular": --> 776 from sage.rings.polynomial.multi_polynomial_libsingular import MPolynomialRing_libsingular global sage.rings.polynomial.multi_polynomial_libsingular = <module 'sage.rings.polynomial.multi_polynomial_libsingular' (built-in)> MPolynomialRing_libsingular = undefined 777 try: 778 R = MPolynomialRing_libsingular(base_ring, n, names, order) 779 except (TypeError, NotImplementedError): 780 if implementation is not None: 781 raise 782 else: 783 implementation_names.update([None, "singular"]) 784 785 if R is None and implementation is None: 786 # Interpret implementation=None as implementation="generic" 787 implementation = "generic" 788 implementation_names.add(implementation) 789 key[-1] = implementation 790 R = _get_from_cache(key) 791 /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_libsingular.pyx in init sage.rings.polynomial.multi_polynomial_libsingular (build/cythonized/sage/rings/polynomial/multi_polynomial_libsingular.cpp:48276)() ----> 1 r""" 2 Multivariate Polynomials via libSINGULAR 3 4 This module implements specialized and optimized implementations for 5 multivariate polynomials over many coefficient rings, via a shared library 6 interface to SINGULAR. In particular, the following coefficient rings are 7 supported by this implementation: 8 9 - the rational numbers `\QQ`, 10 11 - the ring of integers `\ZZ`, 12 13 - `\ZZ/n\ZZ` for any integer `n`, 14 15 - finite fields `\GF{p^n}` for `p` prime and `n > 0`, 16 17 - and absolute number fields `\QQ(a)`. 18 19 AUTHORS: 20 21 The libSINGULAR interface was implemented by 22 23 - Martin Albrecht (2007-01): initial implementation 24 25 - Joel Mohler (2008-01): misc improvements, polishing 26 27 - Martin Albrecht (2008-08): added `\QQ(a)` and `\ZZ` support 28 29 - Simon King (2009-04): improved coercion 30 31 - Martin Albrecht (2009-05): added `\ZZ/n\ZZ` support, refactoring /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/sage/libs/singular/singular.pyx in init sage.libs.singular.singular (build/cythonized/sage/libs/singular/singular.cpp:10934)() 796 singular_options = singular_options | Sy_bit(OPT_REDSB) | Sy_bit(OPT_INTSTRATEGY) | Sy_bit(OPT_REDTAIL) | Sy_bit(OPT_REDTHROUGH) 797 global _saved_options 798 global _saved_verbose_options 799 _saved_options = (int(singular_options), 0, 0) 800 _saved_verbose_options = int(singular_verbose_options) 801 802 #On(SW_USE_NTL) 803 On(SW_USE_EZGCD) 804 Off(SW_USE_NTL_SORT) 805 806 WerrorS_callback = libsingular_error_callback 807 808 error_messages = [] 809 810 # call the init routine --> 811 init_libsingular() global init_libsingular = undefined 812 813 cdef void libsingular_error_callback(const_char_ptr s): 814 _s = char_to_str(s) 815 error_messages.append(_s) /Users/ahausknecht/SageMath/local/lib/python2.7/site-packages/sage/libs/singular/singular.pyx in sage.libs.singular.singular.init_libsingular (build/cythonized/sage/libs/singular/singular.cpp:8487)() 759 SINGULAR has a concept of compiled extension modules similar to 760 Sage. For this, the compiled modules need to see the symbols from 761 the main program. However, SINGULAR is a shared library in this 762 context these symbols are not known globally. The work around so 763 far is to load the library again and to specify ``RTLD_GLOBAL``. 764 """ 765 global singular_options 766 global singular_verbose_options 767 global WerrorS_callback 768 global error_messages 769 770 cdef void *handle = NULL 771 772 from sage.env import SINGULAR_SO 773 if not SINGULAR_SO or not os.path.exists(SINGULAR_SO): --> 774 raise RuntimeError( global RuntimeError = undefined 775 "libSingular not found--a working Singular install in $SAGE_LOCAL " 776 "is required for Sage to work") 777 778 lib = SINGULAR_SO 779 780 if not os.path.exists(lib): 781 raise ImportError("cannot locate Singular library ({})".format(lib)) 782 783 lib = str_to_bytes(lib, FS_ENCODING, "surrogateescape") 784 785 handle = dlopen(lib, RTLD_GLOBAL|RTLD_LAZY) 786 if not handle: 787 err = dlerror() 788 raise ImportError("cannot load Singular library ({})".format(err)) 789 RuntimeError: libSingular not found--a working Singular install in $SAGE_LOCAL is required for Sage to work *************************************************************************** History of session input: *** Last line of input (may not be in above history):