Hi

I have compiled sage 8.9 on a KVM used as a master image for a computer lab.
The CPU is presented as model name      : Intel Xeon E3-12xx v2 (Ivy Bridge)

Imaging is using systemimager based on rsync.

On the newer lab machines with Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
the sage copied to the lab machines works fine.

On the older lab machines with Intel(R) Core(TM)2 Duo CPU     E8400  @
3.00GHz
there is a crash as attached.

Is there a flag I can set at compile time to compile for the older CPUs by
disabling use of some instruction not available on the older CPUs, which is
what I suspect is happening?

Regards,
Jan
-- 
  .~.
  /V\     Jan Groenewald
 /( )\    www.aims.ac.za
 ^^-^^

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

IPython post-mortem report

{'commit_hash': u'033ab93c7',
 'commit_source': 'installation',
 'default_encoding': 'UTF-8',
 'ipython_path': '/srv/sage-8.9/local/lib/python2.7/site-packages/IPython',
 'ipython_version': '5.8.0',
 'os_name': 'posix',
 'platform': 'Linux-4.19.0-6-amd64-x86_64-with-debian-buster',
 'sys_executable': '/srv/sage-8.9/local/bin/python2',
 'sys_platform': 'linux2',
 'sys_version': '2.7.15 (default, Sep 30 2019, 12:04:00) \n[GCC 8.3.0]'}

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



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

Crash traceback:

---------------------------------------------------------------------------
---------------------------------------------------------------------------
SignalError                  Python 2.7.15: /srv/sage-8.9/local/bin/python2
                                                   Tue Oct  1 11:28:58 2019
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.
/srv/sage-8.9/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 0x7f7bb7a19b10>>
     16 app.start()

</srv/sage-8.9/local/lib/python2.7/site-packages/decorator.pyc:decorator-gen-110>
 in initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)

/srv/sage-8.9/local/lib/python2.7/site-packages/traitlets/config/application.pyc
 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 0x7f7bb68378c0>
        app = <sage.repl.interpreter.SageTerminalApp object at 0x7f7bb7a19b10>
        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 

/srv/sage-8.9/local/lib/python2.7/site-packages/IPython/terminal/ipapp.pyc 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 0x7f7bb7a19b10>>
    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,

/srv/sage-8.9/local/lib/python2.7/site-packages/sage/repl/interpreter.pyc 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 0x7f7bb75427d0>>
        global SAGE_EXTENSION = 'sage'
    788 
    789 

/srv/sage-8.9/local/lib/python2.7/site-packages/IPython/core/extensions.pyc 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 0x7f7bb75427d0>>
        mod = <module 'sage' from 
'/srv/sage-8.9/local/lib/python2.7/site-packages/sage/__init__.pyc'>
     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:

/srv/sage-8.9/local/lib/python2.7/site-packages/IPython/core/extensions.pyc in 
_call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager 
object>, mod=<module 'sage' from 
'/srv/sage-8.9/local/lib/python2.7/site-packages/sage/__init__.pyc'>)
    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 
0x7f7bb7fd87d0>
        self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object 
at 0x7f7bb684f9d0>
    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.

/srv/sage-8.9/local/lib/python2.7/site-packages/sage/__init__.pyc 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 0x7f7bb4940ed8>
        args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 
0x7f7bb684f9d0>,)
     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)

/srv/sage-8.9/local/lib/python2.7/site-packages/sage/repl/ipython_extension.pyc 
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 
0x7f7bb684f9d0>,)
        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)

/srv/sage-8.9/local/lib/python2.7/site-packages/sage/repl/ipython_extension.pyc 
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 
0x7f7bb684f9d0>

/srv/sage-8.9/local/lib/python2.7/site-packages/sage/repl/ipython_extension.pyc 
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)

/srv/sage-8.9/local/lib/python2.7/site-packages/sage/all.py in <module>()
     75 
     76 # This import also sets up the interrupt handler
     77 from cysignals.signals import (AlarmInterrupt, SignalError,
     78         sig_on_reset as sig_on_count)
     79 
     80 from time                import sleep
     81 from functools import reduce  # in order to keep reduce in python3
     82 
     83 import sage.misc.lazy_import
     84 from sage.misc.all       import *         # takes a while
     85 from sage.typeset.all    import *
     86 from sage.repl.all       import *
     87 
     88 from sage.misc.sh import sh
     89 
---> 90 from sage.libs.all       import *
        global sage.libs.all = undefined
     91 from sage.data_structures.all import *
     92 from sage.doctest.all    import *
     93 
     94 from sage.structure.all  import *
     95 from sage.rings.all      import *
     96 from sage.arith.all      import *
     97 from sage.matrix.all     import *
     98 
     99 from sage.symbolic.all   import *
    100 from sage.modules.all    import *
    101 from sage.monoids.all    import *
    102 from sage.algebras.all   import *
    103 from sage.modular.all    import *
    104 from sage.sat.all        import *
    105 from sage.schemes.all    import *

/srv/sage-8.9/local/lib/python2.7/site-packages/sage/libs/all.py in <module>()
      1 from __future__ import absolute_import
      2 
----> 3 import sage.libs.ntl.all as ntl
        global sage.libs.ntl.all = undefined
        global ntl = undefined
      4 
      5 from sage.libs.pari.all import pari, pari_gen, PariError
      6 
      7 import sage.libs.symmetrica.all as symmetrica
      8 
      9 from sage.misc.lazy_import import lazy_import
     10 lazy_import('sage.libs.gap.libgap', 'libgap')
     11 
     12 lazy_import('sage.libs.eclib.all', ('mwrank_EllipticCurve',
     13         'mwrank_MordellWeil', 'mwrank_initprimes', 
'CremonaModularSymbols'))
     14 lazy_import('sage.libs.eclib.all', 'get_precision', 
'mwrank_get_precision')
     15 lazy_import('sage.libs.eclib.all', 'set_precision', 
'mwrank_set_precision')

/srv/sage-8.9/local/lib/python2.7/site-packages/sage/libs/ntl/all.py in 
<module>()
      9 
#*****************************************************************************
     10 #       Copyright (C) 2005 William Stein <wst...@gmail.com>
     11 #
     12 #  Distributed under the terms of the GNU General Public License (GPL)
     13 #
     14 #    This code is distributed in the hope that it will be useful,
     15 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
     16 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     17 #    General Public License for more details.
     18 #
     19 #  The full text of the GPL is available at:
     20 #
     21 #                  http://www.gnu.org/licenses/
     22 
#*****************************************************************************
     23 
---> 24 from sage.libs.ntl.ntl_ZZ import (
        global sage.libs.ntl.ntl_ZZ = undefined
        global ntl_setSeed = undefined
        global ntl_ZZ = undefined
        global ZZ = undefined
        global randomBnd = undefined
        global ZZ_random = undefined
        global randomBits = undefined
        global ZZ_random_bits = undefined
     25                  ntl_setSeed, \
     26                  ntl_ZZ as ZZ,
     27                  randomBnd as ZZ_random,
     28                  randomBits as ZZ_random_bits )
     29 
     30 from sage.libs.ntl.ntl_ZZ_pContext import ntl_ZZ_pContext as ZZ_pContext
     31 
     32 from sage.libs.ntl.ntl_ZZ_p import (
     33                  ntl_ZZ_p as ZZ_p,
     34                  ntl_ZZ_p_random_element as ZZ_p_random )
     35 
     36 from sage.libs.ntl.ntl_ZZX import (
     37                  ntl_ZZX as ZZX,
     38                  zero_ZZX, one_ZZX )
     39 

/srv/sage-8.9/local/lib/python2.7/site-packages/sage/libs/ntl/ntl_ZZ.pyx in 
init sage.libs.ntl.ntl_ZZ (build/cythonized/sage/libs/ntl/ntl_ZZ.cpp:9102)()
    444 
    445         sage: ntl.ntl_setSeed(10)
    446         sage: ntl.ZZ_random(1000)
    447         935
    448     """
    449     cdef ntl_ZZ seed = ntl_ZZ(1)
    450     if x is None:
    451         from random import randint
    452         seed = ntl_ZZ(randint(0,int(2)**64))
    453     else:
    454         seed = ntl_ZZ(x)
    455     sig_on()
    456     ZZ_SetSeed(seed.x)
    457     sig_off()
    458 
--> 459 ntl_setSeed()
        global ntl_setSeed = <built-in function ntl_setSeed>
    460 
    461 
    462 def randomBnd(q):
    463     r"""
    464     Return a random number in the range [0,n).
    465 
    466     According to the NTL documentation, these numbers are
    467     "cryptographically strong"; of course, that depends in part on
    468     how they are seeded.
    469 
    470     EXAMPLES::
    471 
    472         sage: [ntl.ZZ_random(99999) for i in range(5)]
    473         [30675, 84282, 80559, 6939, 44798]
    474 

/srv/sage-8.9/local/lib/python2.7/site-packages/sage/libs/ntl/ntl_ZZ.pyx in 
sage.libs.ntl.ntl_ZZ.ntl_setSeed 
(build/cythonized/sage/libs/ntl/ntl_ZZ.cpp:6108)()
    440         979
    441 
    442     Now you can call this function, and it will not be overridden until
    443     the next time the main Sage random number seed is changed::
    444 
    445         sage: ntl.ntl_setSeed(10)
    446         sage: ntl.ZZ_random(1000)
    447         935
    448     """
    449     cdef ntl_ZZ seed = ntl_ZZ(1)
    450     if x is None:
    451         from random import randint
    452         seed = ntl_ZZ(randint(0,int(2)**64))
    453     else:
    454         seed = ntl_ZZ(x)
--> 455     sig_on()
        global sig_on = undefined
    456     ZZ_SetSeed(seed.x)
    457     sig_off()
    458 
    459 ntl_setSeed()
    460 
    461 
    462 def randomBnd(q):
    463     r"""
    464     Return a random number in the range [0,n).
    465 
    466     According to the NTL documentation, these numbers are
    467     "cryptographically strong"; of course, that depends in part on
    468     how they are seeded.
    469 
    470     EXAMPLES::

SignalError: Illegal instruction

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

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

Reply via email to