Opened 7 years ago
Last modified 7 years ago
#13864 closed task
Configure Python with pydebug when SAGE_DEBUG is set — at Version 68
Reported by: | jpflori | Owned by: | jason |
---|---|---|---|
Priority: | major | Milestone: | sage-5.7 |
Component: | misc | Keywords: | python spkg |
Cc: | vbraun, SimonKing | Merged in: | |
Authors: | Jean-Pierre Flori | Reviewers: | Volker Braun |
Report Upstream: | N/A | Work issues: | make sure Sage builds and starts |
Branch: | Commit: | ||
Dependencies: | #13865, #13867, #13868, #13876, #13832 | Stopgaps: |
Description (last modified by )
Instructions for getting a debug version of Python:
- Download and untar sage-5.6.beta1
- Copy the Cython spkg from #13832 to spkg/standard
- Copy the Python spkg from #13867 to spkg/standard
- Copy the Singular spkg from #13876 to spkg/standard
- Run
export SAGE_DEBUG=yes make
and wait. At the end, Sage will die in a SIGABRT during "Testing startup" - Apply the patch from #13868 to the Sage library
- Run
sage -br
This gives you a Sage version that starts up, but some doctests segfault. Probably because we just found some bugs ;-)
Change History (68)
comment:1 Changed 7 years ago by
- Status changed from new to needs_review
comment:2 Changed 7 years ago by
- Status changed from needs_review to needs_work
- Work issues set to tag problem
comment:3 Changed 7 years ago by
- Status changed from needs_work to needs_review
- Work issues tag problem deleted
comment:4 Changed 7 years ago by
- Type changed from PLEASE CHANGE to enhancement
comment:5 Changed 7 years ago by
- Dependencies set to #13865
- Reviewers set to Volker Braun
- Status changed from needs_review to positive_review
comment:6 Changed 7 years ago by
Sage claims that the spkg built successfully. However, I see things like
/home/simon/SAGE/debug/sage-5.5.rc0/spkg/build/python-2.7.3.p4/src/Modules/_curses_panel.c:17:19: fatal error: panel.h: Datei oder Verzeichnis nicht gefunden compilation terminated. Python build finished, but the necessary bits to build these modules were not found: _bsddb bsddb185 dbm dl gdbm imageop sunaudiodev To find the necessary bits, look in setup.py in detect_modules() for the module's name.
in the install log. Is that normal?
comment:7 follow-up: ↓ 8 Changed 7 years ago by
Yes it is (or at least I always had this behavior). I think these "optional" modules are only built if the needed prerequisites are present, but are not really required to get a working Python.
comment:8 in reply to: ↑ 7 Changed 7 years ago by
Replying to jpflori:
I think these "optional" modules are only built if the needed prerequisites are present, but are not really required to get a working Python.
Exactly. Some of these optional modules (like "crypt" for example) are required for Sage, that's why we try to import them in Python's spkg-install
.
comment:9 Changed 7 years ago by
One observation, potentially related with what we discussed on #715:
Starting python and importing sage works:
> ./sage -python Python 2.7.3 (default, Dec 26 2012, 19:09:45) [GCC 4.6.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sage [39290 refs]
However, importing sage.categories.map.Map does not work:
>>> from sage.categories.map import Map Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: cannot import name Map [102454 refs]
I don't know whether this *should* work, but anyway: It doesn't.
comment:10 Changed 7 years ago by
I'd say (although I don't know why) it is because it is a Cython module. Did you try with a plain Python build?
comment:11 Changed 7 years ago by
I made a gdb spkg at #13866 so you can get a working debugger with the Python debug build.
comment:12 follow-up: ↓ 13 Changed 7 years ago by
Some debugging hint: Use python -v
to print imports as they happen:
[vbraun@volker-desktop sage-5.6.beta0]$ ./sage -python -v ... >>> import sage.all_cmdline ... import sage.rings.padics.padic_ext_element # dynamically loaded from /home/vbraun/opt/sage-5.6.beta0/local/lib/python2.7/site-packages/sage/rings/padics/padic_ext_element.so Fatal Python error: UNREF invalid object /home/vbraun/opt/sage-5.6.beta0/local/lib/libcsage.so(print_backtrace+0x31)[0x7f0c88f3120d] /home/vbraun/opt/sage-5.6.beta0/local/lib/libcsage.so(sigdie+0x14)[0x7f0c88f3123f] /home/vbraun/opt/sage-5.6.beta0/local/lib/libcsage.so(sage_signal_handler+0x1da)[0x7f0c88f30deb]
comment:13 in reply to: ↑ 12 Changed 7 years ago by
Replying to vbraun:
Some debugging hint: Use
python -v
to print imports as they happen:[vbraun@volker-desktop sage-5.6.beta0]$ ./sage -python -v ... >>> import sage.all_cmdline ... import sage.rings.padics.padic_ext_element # dynamically loaded from /home/vbraun/opt/sage-5.6.beta0/local/lib/python2.7/site-packages/sage/rings/padics/padic_ext_element.so Fatal Python error: UNREF invalid object /home/vbraun/opt/sage-5.6.beta0/local/lib/libcsage.so(print_backtrace+0x31)[0x7f0c88f3120d] /home/vbraun/opt/sage-5.6.beta0/local/lib/libcsage.so(sigdie+0x14)[0x7f0c88f3123f] /home/vbraun/opt/sage-5.6.beta0/local/lib/libcsage.so(sage_signal_handler+0x1da)[0x7f0c88f30deb]
Could you add this to the dev doc in #13865, or here?
comment:14 Changed 7 years ago by
Thank you! I was just about to ask how one can see what stuff is being imported. So, -v it is...
comment:15 Changed 7 years ago by
Well ideally we'd ship Sage in a state where it at least starts up with a debug build. If I find something thats particularly useful in debugging then I'll document it. For now:
(sage-sh) vbraun@volker-desktop:sage-5.6.beta0$ gdb python ... (gdb) run -v ... >>> import sage.all_cmdline ... Fatal Python error: UNREF invalid object Program received signal SIGABRT, Aborted. 0x0000003da9835ba5 in raise () from /lib64/libc.so.6 (gdb) bt #0 0x0000003da9835ba5 in raise () from /lib64/libc.so.6 #1 0x0000003da9837358 in abort () from /lib64/libc.so.6 #2 0x00007ffff7d1a63b in Py_FatalError (msg=0x7ffff7d63eb1 "UNREF invalid object") at Python/pythonrun.c:1677 #3 0x00007ffff7c49f18 in _Py_ForgetReference (op=0x21194c0) at Objects/object.c:2223 #4 0x00007ffff7c49f6b in _Py_Dealloc (op=0x21194c0) at Objects/object.c:2242 #5 0x00007fffd9de6e7c in initpadic_ZZ_pX_element () at sage/rings/padics/padic_ZZ_pX_element.cpp:9634 #6 0x00007ffff7d0a496 in _PyImport_LoadDynamicModule ( name=0x7ffffffe4360 "sage.rings.padics.padic_ZZ_pX_element", pathname=0x7ffffffe3260 "/home/vbraun/opt/sage-5.6.beta0/local/lib/python2.7/site-packages/sage/rings/padics/padic_ZZ_pX_element.so", fp=0x20d23b0) at ./Python/importdl.c:53 ... (gdb) frame 5 #5 0x00007fffd9de6e7c in initpadic_ZZ_pX_element () at sage/rings/padics/padic_ZZ_pX_element.cpp:9634 9634 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; (gdb) l 9629 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; 9630 __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__one); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 9631 __Pyx_GOTREF(__pyx_t_2); 9632 __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 9633 __Pyx_GOTREF(__pyx_t_3); 9634 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 9635 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; 9636 if (PyObject_SetAttr(__pyx_m, __pyx_n_s__big, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 9637 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
comment:16 follow-up: ↓ 19 Changed 7 years ago by
See my long lonely rant at sage-devel https://groups.google.com/d/topic/sage-devel/Wt7uxbDkh_A/discussion, especially the links:
- post about weakref problem solved here https://groups.google.com/d/topic/cython-users/4es75DeacRA/discussion
- and your ticket for updating cython here #13832
Hopefully that will be enough to get Sage to start (and finally get a working #715?).
comment:17 follow-up: ↓ 24 Changed 7 years ago by
Interestingly, the error on my laptop looks different from what Volker reported in comment:15:
(sage-sh) simon@linux-sqwp:sage-5.5.rc0$ gdb python ... (gdb) run -v ... >>> import sage.all_cmdline ... import sage.libs.pari.gen # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs/pari/gen.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/integer.so", 2); python: Modules/gcmodule.c:326: visit_decref: Assertion `gc->gc.gc_refs != 0' failed. Program received signal SIGABRT, Aborted. 0x00007ffff6d95d95 in raise () from /lib64/libc.so.6
Hence: No Fatal Python error: UNREF invalid object
.
Further:
(gdb) bt #0 0x00007ffff6d95d95 in raise () from /lib64/libc.so.6 #1 0x00007ffff6d972ab in abort () from /lib64/libc.so.6 #2 0x00007ffff6d8e8fe in __assert_fail_base () from /lib64/libc.so.6 #3 0x00007ffff6d8e9a2 in __assert_fail () from /lib64/libc.so.6 #4 0x00007ffff7b12a19 in visit_decref (op=0x1462f40, data=0x0) at Modules/gcmodule.c:326 #5 0x00007fffeecdcfe1 in __pyx_tp_traverse_4sage_9structure_15category_object_CategoryObject (o=0x14b7d30, v=0x7ffff7b1295e <visit_decref>, a=0x0) at sage/structure/category_object.c:8971 #6 0x00007fffeef4724f in __pyx_tp_traverse_4sage_9structure_6parent_Parent (o=0x14b7d30, v=0x7ffff7b1295e <visit_decref>, a=0x0) at sage/structure/parent.c:21293 #7 0x00007fffef18a97c in __pyx_tp_traverse_4sage_9structure_10parent_old_Parent (o=0x14b7d30, v=0x7ffff7b1295e <visit_decref>, a=0x0) at sage/structure/parent_old.c:7253 #8 0x00007fffef39ab57 in __pyx_tp_traverse_4sage_9structure_11parent_base_ParentWithBase (o=0x14b7d30, v=0x7ffff7b1295e <visit_decref>, a=0x0) at sage/structure/parent_base.c:1892 #9 0x00007ffff7a4c572 in subtype_traverse (self=0x14b7d30, visit=0x7ffff7b1295e <visit_decref>, arg=0x0) at Objects/typeobject.c:838 ... #32 0x00007fffecc2bcbe in __Pyx_ImportModule (name=0x7fffecc2fc6c "sage.rings.integer") at sage/rings/complex_double.c:18370 #33 0x00007fffecc2b951 in __Pyx_ImportType (module_name=0x7fffecc2fc6c "sage.rings.integer", class_name=0x7fffecc2fc64 "Integer", size=64, strict=1) at sage/rings/complex_double.c:18319 #34 0x00007fffecc25b46 in initcomplex_double () at sage/rings/complex_double.c:16572 #35 0x00007ffff7ae9282 in _PyImport_LoadDynamicModule (name=0x7ffffffed660 "sage.rings.complex_double", ...
So, "Volker's" error is in padic_ZZ_pX_element
, but mine is in sage.rings.integer
. Moreover, my gdb backtrace is a lot shorter, just 109 lines.
By the way:
>>> from sage.rings.integer_ring import IntegerRing
fails with an import error -- but there is no crash! So, there seems to be something else wrong, not just the refcount.
comment:18 Changed 7 years ago by
What you get is similar to what I get (without gdb). Although the failing place is different as I call ./sage -c "1+1" which must import something else (I'd say sage/all.py) as all_cmdline.py.
Not sure why Volker's output differs.
Anyway, I think we should now focus on trying all of this with #13832. (Don't forget to rebuild the Sage library after upgrading Cython.)
comment:19 in reply to: ↑ 16 ; follow-up: ↓ 20 Changed 7 years ago by
Replying to jpflori:
See my long lonely rant at sage-devel https://groups.google.com/d/topic/sage-devel/Wt7uxbDkh_A/discussion, especially the links:
- post about weakref problem solved here https://groups.google.com/d/topic/cython-users/4es75DeacRA/discussion
- and your ticket for updating cython here #13832
Hopefully that will be enough to get Sage to start (and finally get a working #715?).
I don't find these links in the discussion at sage-devel, but indeed the announcement on cython-users looks promising! I am now trying to install the cython spkg from #13832. I guess after installing it I have to do sage -ba, right?
comment:20 in reply to: ↑ 19 Changed 7 years ago by
Replying to SimonKing:
Replying to jpflori:
See my long lonely rant at sage-devel https://groups.google.com/d/topic/sage-devel/Wt7uxbDkh_A/discussion, especially the links:
- post about weakref problem solved here https://groups.google.com/d/topic/cython-users/4es75DeacRA/discussion
- and your ticket for updating cython here #13832
Hopefully that will be enough to get Sage to start (and finally get a working #715?).
I don't find these links in the discussion at sage-devel, but indeed the announcement on cython-users looks promising! I am now trying to install the cython spkg from #13832. I guess after installing it I have to do sage -ba, right?
Not really sure :) I touched everything in sage/structure hoping it will be enough.
If the bug persists, I'll report my minimal example on cython-users.
comment:21 Changed 7 years ago by
Ok now my first errors with the pexpect interfaces are gone! Great!
But I now get an error similar to Volker's one. I hope that it is just some files in sage/rings/which were not rebuilt.
comment:22 Changed 7 years ago by
I'll need a bit longer to test, because I did sage -ba. I thought that, if Cython gets updated, then one certainly needs to rebuild all pyx files.
comment:23 Changed 7 years ago by
You're right, I just did not remember about the -a flag.
comment:24 in reply to: ↑ 17 ; follow-up: ↓ 26 Changed 7 years ago by
Replying to SimonKing:
Interestingly, the error on my laptop looks different from what Volker reported in comment:15: ... dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/integer.so", 2); python: Modules/gcmodule.c:326: visit_decref: Assertion `gc->gc.gc_refs != 0' failed. ...
You die in a garbage collection cycle, presumably because you have < 32 GB RAM (= my desktop). So the garbage collector runs earlier.
We both get killed by integer arithmetic, which points to a circular import problem. The Integer class is a particularly bad case of stuff that tries to define and compute everything upon import. At the same time it is interleaved with the rationals class, so it is full of circular imports. Which almost certainly equals half-constructed objects during the circular import fest.
comment:25 Changed 7 years ago by
Ok now I also get:
./sage -sh ... gdb python ... r -v ... import sage.rings.padics.padic_ext_element # dynamically loaded from /home/jp/boulot/sage/sage-5.6.beta0/local/lib/python2.7/site-packages/sage/rings/padics/padic_ext_element.so Fatal Python error: UNREF invalid object Program received signal SIGABRT, Aborted. 0x00007ffff6cdfdd5 in raise () from /lib/x86_64-linux-gnu/libc.so.6
with bt
(gdb) bt #0 0x00007ffff6cdfdd5 in raise () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007ffff6ce2efb in abort () from /lib/x86_64-linux-gnu/libc.so.6 #2 0x00007ffff7afa73c in Py_FatalError ( msg=0x7ffff7b441d1 "UNREF invalid object") at Python/pythonrun.c:1677 #3 0x00007ffff7a2c31e in _Py_ForgetReference (op=0x1e18440) at Objects/object.c:2223 #4 0x00007ffff7a2c371 in _Py_Dealloc (op=0x1e18440) at Objects/object.c:2242 #5 0x00007fffde01b3ac in initpadic_ZZ_pX_element () at sage/rings/padics/padic_ZZ_pX_element.cpp:9650 #6 0x00007ffff7aea57e in _PyImport_LoadDynamicModule ( name=0x7ffffffe4910 "sage.rings.padics.padic_ZZ_pX_element", pathname=0x7ffffffe3810 "/home/jp/boulot/sage/sage-5.6.beta0/local/lib/python2.7/site-packages/sage/rings/padics/padic_ZZ_pX_element.so", fp=0x1e13800) at ./Python/importdl.c:53 #7 0x00007ffff7ae64a5 in load_module ( name=0x7ffffffe4910 "sage.rings.padics.padic_ZZ_pX_element", fp=0x1e13800, pathname=0x7ffffffe3810 "/home/jp/boulot/sage/sage-5.6.beta0/local/lib/python2.7/site-packages/sage/rings/padics/padic_ZZ_pX_element.so", type=3, loader=0x0) at Python/import.c:1831 #8 0x00007ffff7ae8776 in import_submodule (mod=0x1acc600, subname=0x7ffffffe4922 "padic_ZZ_pX_element", fullname=0x7ffffffe4910 "sage.rings.padics.padic_ZZ_pX_element") at Python/import.c:2595 #9 0x00007ffff7ae7c9a in load_next (mod=0x1acc600, altmod=0x1acc600, p_name=0x7ffffffe48f8, buf=0x7ffffffe4910 "sage.rings.padics.padic_ZZ_pX_element", p_buflen=0x7ffffffe4908) at Python/import.c:2415
and seems to be caused by
big = two**128 + one #this should not fit in a long, since it's supposed to be bigger than any valid absolute precision.
comment:26 in reply to: ↑ 24 ; follow-up: ↓ 28 Changed 7 years ago by
Replying to vbraun:
Replying to SimonKing:
Interestingly, the error on my laptop looks different from what Volker reported in comment:15: ... dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/integer.so", 2); python: Modules/gcmodule.c:326: visit_decref: Assertion `gc->gc.gc_refs != 0' failed. ...
You die in a garbage collection cycle, presumably because you have < 32 GB RAM (= my desktop). So the garbage collector runs earlier.
Are you sure? I'd say this really looks like the weakref mess fixed up in 0.17.3.
We both get killed by integer arithmetic, which points to a circular import problem. The Integer class is a particularly bad case of stuff that tries to define and compute everything upon import. At the same time it is interleaved with the rationals class, so it is full of circular imports. Which almost certainly equals half-constructed objects during the circular import fest.
comment:27 Changed 7 years ago by
According to http://realmike.org/blog/2012/07/08/embedding-python-tutorial-part-1/ we might need to compile files by passing -DPy_DEBUG. Does this really changes anything in python headers? grep indeed finds occurences of it in $SAGE_LOCAL/include/python2.7
comment:28 in reply to: ↑ 26 Changed 7 years ago by
Replying to jpflori:
Replying to vbraun:
Replying to SimonKing:
Interestingly, the error on my laptop looks different from what Volker reported in comment:15: ... dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/integer.so", 2); python: Modules/gcmodule.c:326: visit_decref: Assertion `gc->gc.gc_refs != 0' failed. ...
You die in a garbage collection cycle, presumably because you have < 32 GB RAM (= my desktop). So the garbage collector runs earlier.
Are you sure? I'd say this really looks like the weakref mess fixed up in 0.17.3.
After upgrading to Cython 0.17.3, I get an error that seems to confirm what Volker stated.
So, now we have to try and find out where the padics problem comes from.
Note, however, that in pure python I still get a "harmless" import error when I want to do
Python 2.7.3 (default, Dec 26 2012, 19:09:45) [GCC 4.6.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from sage.rings.integer_ring import IntegerRing Traceback (most recent call last): File "<stdin>", line 1, in <module> File "integer.pxd", line 9, in init sage.rings.integer_ring (sage/rings/integer_ring.c:12178) File "integer.pyx", line 170, in init sage.rings.integer (sage/rings/integer.c:38390) File "/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/infinity.py", line 200, in <module> import sage.rings.rational File "fast_arith.pxd", line 5, in init sage.rings.rational (sage/rings/rational.c:27828) File "fast_arith.pyx", line 51, in init sage.rings.fast_arith (sage/rings/fast_arith.c:8060) ImportError: cannot import name ZZ [133346 refs] >>> quit()
Hence, no crash, but something is wrong with the ring of integers,
comment:29 follow-up: ↓ 32 Changed 7 years ago by
Question about the way to proceed:
This ticket provides the debug version of the python spkg, and it has a positive review. However, in the debug version, Sage does not even start.
So, shall we open a new ticket "Make Sage start when Python is build under SAGE_DEBUG", or shall we try to resolve the starting problem here?
I suggest to keep it here, thus changing the status into "needs work".
comment:30 follow-up: ↓ 33 Changed 7 years ago by
For the record: These imports occur when one tries to import the integer ring, as reported by python -v
:
>>> import sage import sage # directory /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/__init__.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/__init__.py import sage # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/__init__.pyc [39292 refs] >>> from sage.rings.integer_ring import IntegerRing import sage.rings # directory /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/__init__.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/__init__.py import sage.rings # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/__init__.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/integer_ring.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/ring.so", 2); import sage.structure # directory /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/__init__.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/__init__.py import sage.structure # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/__init__.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/dynamic_class.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/dynamic_class.py import sage.structure.dynamic_class # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/dynamic_class.pyc import sage.misc # directory /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/__init__.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/__init__.py import sage.misc # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/__init__.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/cachefunc.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/function_mangling.so", 2); import sage.misc.function_mangling # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/function_mangling.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sageinspect.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sageinspect.py import sage.misc.sageinspect # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sageinspect.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/ast.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/ast.py import ast # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/ast.pyc import _ast # builtin # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/inspect.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/inspect.py import inspect # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/inspect.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/string.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/string.py import string # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/string.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/strop.so", 2); import strop # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/strop.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/dis.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/dis.py import dis # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/dis.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/opcode.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/opcode.py import opcode # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/opcode.pyc import imp # builtin # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/tokenize.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/tokenize.py import tokenize # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/tokenize.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/token.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/token.py import token # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/token.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/operator.so", 2); import operator # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/operator.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/collections.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/collections.py import collections # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/collections.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_collections.so", 2); import _collections # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_collections.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/keyword.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/keyword.py import keyword # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/keyword.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/heapq.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/heapq.py import heapq # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/heapq.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/itertools.so", 2); import itertools # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/itertools.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/bisect.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/bisect.py import bisect # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/bisect.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_bisect.so", 2); import _bisect # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_bisect.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_heapq.so", 2); import _heapq # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_heapq.so import thread # builtin # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/functools.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/functools.py import functools # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/functools.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_functools.so", 2); import _functools # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_functools.so import sage.misc.cachefunc # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/cachefunc.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/unique_representation.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/unique_representation.py import sage.structure.unique_representation # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/unique_representation.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/nested_class.so", 2); import sage.misc.nested_class # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/nested_class.so import sage.misc.classcall_metaclass # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/lazy_attribute.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/lazy_attribute.py import sage.misc.lazy_attribute # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/lazy_attribute.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/abstract_method.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/abstract_method.py import sage.misc.abstract_method # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/abstract_method.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/parent_gens.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/parent_base.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/parent_old.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/parent.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/category_object.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/sage_object.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/cPickle.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/cStringIO.so", 2); import cStringIO # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/cStringIO.so import cPickle # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/cPickle.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sage_unittest.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sage_unittest.py import sage.misc.sage_unittest # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sage_unittest.pyc import unittest # directory /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/__init__.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/__init__.py import unittest # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/__init__.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/result.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/result.py import unittest.result # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/result.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/StringIO.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/StringIO.py import StringIO # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/StringIO.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/util.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/util.py import unittest.util # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/util.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/case.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/case.py import unittest.case # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/case.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/difflib.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/difflib.py import difflib # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/difflib.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/pprint.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/pprint.py import pprint # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/pprint.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/suite.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/suite.py import unittest.suite # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/suite.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/loader.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/loader.py import unittest.loader # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/loader.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/fnmatch.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/fnmatch.py import fnmatch # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/fnmatch.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/main.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/main.py import unittest.main # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/main.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/runner.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/runner.py import unittest.runner # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/runner.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/time.so", 2); import time # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/time.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/signals.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/signals.py import unittest.signals # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/unittest/signals.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/weakref.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/weakref.py import weakref # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/weakref.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/zlib.so", 2); import zlib # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/zlib.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/bz2.so", 2); import bz2 # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/bz2.so import sage.structure.sage_object # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/sage_object.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/generators.so", 2); import sage.structure.generators # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/generators.so import sage.categories # directory /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/__init__.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/__init__.py import sage.categories # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/__init__.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/primer.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/primer.py import sage.categories.primer # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/primer.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/category.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/category.py import sage.categories.category # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/category.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/c3.so", 2); import sage.misc.c3 # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/c3.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/unknown.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/unknown.py import sage.misc.unknown # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/unknown.pyc import sage.structure.category_object # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/category_object.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/coerce_dict.so", 2); import sage.structure.coerce_dict # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/coerce_dict.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/element.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/misc.so", 2); # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sage_itertools.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sage_itertools.py import sage.misc.sage_itertools # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sage_itertools.pyc import sage.structure.misc # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/misc.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/lazy_format.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/lazy_format.py import sage.misc.lazy_format # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/lazy_format.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/copy.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/copy.py import copy # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/copy.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/coerce.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/map.so", 2); # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/homset.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/homset.py import sage.categories.homset # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/homset.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/morphism.so", 2); import sage.categories.morphism # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/morphism.so import sage.categories.map # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/map.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/functor.so", 2); import sage.categories.functor # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/functor.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/action.so", 2); import sage.categories.action # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/action.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/coerce_exceptions.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/coerce_exceptions.py import sage.structure.coerce_exceptions # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/coerce_exceptions.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/coerce_actions.so", 2); import sage.structure.coerce_actions # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/coerce_actions.so import sage.structure.coerce # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/coerce.so import sage.structure.element # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/element.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/sets_cat.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/sets_cat.py import sage.categories.sets_cat # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/sets_cat.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/lazy_import.so", 2); # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/shutil.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/shutil.py import shutil # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/shutil.pyc import pwd # builtin dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/grp.so", 2); import grp # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/grp.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/tempfile.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/tempfile.py import tempfile # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/tempfile.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/random.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/random.py import random # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/random.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/__future__.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/__future__.py import __future__ # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/__future__.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/math.so", 2); import math # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/math.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/binascii.so", 2); import binascii # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/binascii.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/hashlib.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/hashlib.py import hashlib # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/hashlib.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_hashlib.so", 2); import _hashlib # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_hashlib.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_random.so", 2); import _random # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_random.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/fcntl.so", 2); import fcntl # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/fcntl.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/lazy_import_cache.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/lazy_import_cache.py import sage.misc.lazy_import_cache # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/lazy_import_cache.pyc import sage.misc.lazy_import # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/lazy_import.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/category_singleton.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/constant_function.so", 2); import sage.misc.constant_function # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/constant_function.so import sage.categories.category_singleton # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/category_singleton.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/sets_with_partial_maps.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/sets_with_partial_maps.py import sage.categories.sets_with_partial_maps # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/sets_with_partial_maps.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/objects.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/objects.py import sage.categories.objects # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/objects.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/subquotients.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/subquotients.py import sage.categories.subquotients # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/subquotients.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/covariant_functorial_construction.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/covariant_functorial_construction.py import sage.categories.covariant_functorial_construction # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/covariant_functorial_construction.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/quotients.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/quotients.py import sage.categories.quotients # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/quotients.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/subobjects.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/subobjects.py import sage.categories.subobjects # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/subobjects.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/isomorphic_objects.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/isomorphic_objects.py import sage.categories.isomorphic_objects # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/isomorphic_objects.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/algebra_functor.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/algebra_functor.py import sage.categories.algebra_functor # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/algebra_functor.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/category_types.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/category_types.py import sage.categories.category_types # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/category_types.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/latex.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/latex.py import sage.misc.latex # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/latex.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/subprocess.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/subprocess.py import subprocess # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/subprocess.pyc import gc # builtin dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/select.so", 2); import select # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/select.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/pickle.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/pickle.py import pickle # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/pickle.pyc import marshal # builtin # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/struct.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/struct.py import struct # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/struct.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_struct.so", 2); import _struct # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/lib-dynload/_struct.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/temporary_file.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/temporary_file.py import sage.misc.temporary_file # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/temporary_file.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sage_eval.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sage_eval.py import sage.misc.sage_eval # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sage_eval.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/preparser.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/preparser.py import sage.misc.preparser # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/preparser.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/base64.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/base64.py import base64 # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python/base64.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sage_ostools.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sage_ostools.py import sage.misc.sage_ostools # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/sage_ostools.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/cartesian_product.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/cartesian_product.py import sage.categories.cartesian_product # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/cartesian_product.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/realizations.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/realizations.py import sage.categories.realizations # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/realizations.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/bindable_class.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/bindable_class.py import sage.misc.bindable_class # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/bindable_class.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/with_realizations.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/with_realizations.py import sage.categories.with_realizations # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/with_realizations.pyc import sage.structure.parent # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/parent.so import sage.structure.parent_old # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/parent_old.so import sage.structure.parent_base # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/parent_base.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/defaults.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/defaults.py import sage.misc.defaults # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/defaults.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/gens_py.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/gens_py.py import sage.structure.gens_py # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/gens_py.pyc import sage.structure.parent_gens # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/structure/parent_gens.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/prandom.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/prandom.py import sage.misc.prandom # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/prandom.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/randstate.so", 2); import sage.misc.randstate # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/randstate.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/rings.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/rings.py import sage.categories.rings # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/rings.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/rngs.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/rngs.py import sage.categories.rngs # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/rngs.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_additive_groups.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_additive_groups.py import sage.categories.commutative_additive_groups # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_additive_groups.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_additive_monoids.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_additive_monoids.py import sage.categories.commutative_additive_monoids # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_additive_monoids.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_additive_semigroups.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_additive_semigroups.py import sage.categories.commutative_additive_semigroups # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_additive_semigroups.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/additive_magmas.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/additive_magmas.py import sage.categories.additive_magmas # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/additive_magmas.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/semigroups.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/semigroups.py import sage.categories.semigroups # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/semigroups.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/misc_c.so", 2); import sage.misc.misc_c # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/misc_c.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/magmas.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/magmas.py import sage.categories.magmas # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/magmas.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/semirings.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/semirings.py import sage.categories.semirings # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/semirings.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/monoids.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/monoids.py import sage.categories.monoids # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/monoids.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_rings.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_rings.py import sage.categories.commutative_rings # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_rings.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/integral_domains.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/integral_domains.py import sage.categories.integral_domains # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/integral_domains.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/domains.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/domains.py import sage.categories.domains # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/domains.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/principal_ideal_domains.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/principal_ideal_domains.py import sage.categories.principal_ideal_domains # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/principal_ideal_domains.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/unique_factorization_domains.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/unique_factorization_domains.py import sage.categories.unique_factorization_domains # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/unique_factorization_domains.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/gcd_domains.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/gcd_domains.py import sage.categories.gcd_domains # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/gcd_domains.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/euclidean_domains.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/euclidean_domains.py import sage.categories.euclidean_domains # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/euclidean_domains.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/algebras.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/algebras.py import sage.categories.algebras # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/algebras.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/dual.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/dual.py import sage.categories.dual # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/dual.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/tensor.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/tensor.py import sage.categories.tensor # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/tensor.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/modules.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/modules.py import sage.categories.modules # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/modules.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/bimodules.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/bimodules.py import sage.categories.bimodules # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/bimodules.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/left_modules.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/left_modules.py import sage.categories.left_modules # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/left_modules.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/right_modules.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/right_modules.py import sage.categories.right_modules # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/right_modules.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/fields.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/fields.py import sage.categories.fields # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/fields.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/division_rings.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/division_rings.py import sage.categories.division_rings # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/division_rings.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/field.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/field.py import sage.rings.field # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/field.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/vector_spaces.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/vector_spaces.py import sage.categories.vector_spaces # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/vector_spaces.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_algebras.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_algebras.py import sage.categories.commutative_algebras # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/categories/commutative_algebras.pyc import sage.rings.ring # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/ring.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/integer.so", 2); import sage.libs # directory /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs/__init__.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs/__init__.py import sage.libs # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs/__init__.pyc import sage.libs.pari # directory /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs/pari # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs/pari/__init__.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs/pari/__init__.py import sage.libs.pari # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs/pari/__init__.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs/pari/all.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs/pari/all.py import sage.libs.pari.all # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs/pari/all.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs/pari/gen.so", 2); import sage.libs.pari.gen # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/libs/pari/gen.so dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/allocator.so", 2); import sage.misc.allocator # dynamically loaded from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/misc/allocator.so # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/infinity.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/infinity.py import sage.rings.infinity # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/infinity.pyc # /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/ring_element.pyc matches /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/ring_element.py import sage.rings.ring_element # precompiled from /home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/ring_element.pyc dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/rational.so", 2); dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/fast_arith.so", 2); Traceback (most recent call last): File "<stdin>", line 1, in <module> File "integer.pxd", line 9, in init sage.rings.integer_ring (sage/rings/integer_ring.c:12178) File "integer.pyx", line 170, in init sage.rings.integer (sage/rings/integer.c:38390) File "/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/infinity.py", line 200, in <module> import sage.rings.rational File "fast_arith.pxd", line 5, in init sage.rings.rational (sage/rings/rational.c:27828) File "fast_arith.pyx", line 51, in init sage.rings.fast_arith (sage/rings/fast_arith.c:8060) ImportError: cannot import name ZZ
Scary. All "usual suspects" are in place: Weak references, coercion, categories.
But what goes wrong? Is it a circular import? If so, what can be done to improve it?
comment:31 Changed 7 years ago by
Replying to SimonKing:
Replying to jpflori:
Replying to vbraun:
Replying to SimonKing:
Interestingly, the error on my laptop looks different from what Volker reported in comment:15: ... dlopen("/home/simon/SAGE/debug/sage-5.5.rc0/local/lib/python2.7/site-packages/sage/rings/integer.so", 2); python: Modules/gcmodule.c:326: visit_decref: Assertion `gc->gc.gc_refs != 0' failed. ...
You die in a garbage collection cycle, presumably because you have < 32 GB RAM (= my desktop). So the garbage collector runs earlier.
Are you sure? I'd say this really looks like the weakref mess fixed up in 0.17.3.
After upgrading to Cython 0.17.3, I get an error that seems to confirm what Volker stated.
Do you get the same one as before? i.e. with a failing assert?
Or the one that Volker got (and I now get)? i.e. with a Fatal UNREF?
Just asking ot be really sure we (or I :) ) did not get confused.
And I just tested that adding -DPy_DEBUG does not help with the FATAL thing.
comment:32 in reply to: ↑ 29 Changed 7 years ago by
Replying to SimonKing:
Question about the way to proceed:
This ticket provides the debug version of the python spkg, and it has a positive review. However, in the debug version, Sage does not even start.
So, shall we open a new ticket "Make Sage start when Python is build under SAGE_DEBUG", or shall we try to resolve the starting problem here?
I suggest to keep it here, thus changing the status into "needs work".
If we have to fix circular imports before merging this, it will just never get merged. So although I don't think either it is the right solution, I propose to merge this to let people who want play with it.
comment:33 in reply to: ↑ 30 Changed 7 years ago by
Replying to SimonKing:
For the record: These imports occur when one tries to import the integer ring, as reported by
python -v
: {{{line 200, in <module>import sage.rings.rational
File "fast_arith.pxd", line 5, in init sage.rings.rational (sage/rings/rational.c:27828) File "fast_arith.pyx", line 51, in init sage.rings.fast_arith (sage/rings/fast_arith.c:8060)
ImportError?: cannot import name ZZ }}}
Scary. All "usual suspects" are in place: Weak references, coercion, categories.
But what goes wrong? Is it a circular import? If so, what can be done to improve it?
I think it is indeed a circular import. I've been chasing those starting from ring_integer yesterday night, but it just gave be bad dreams. After three or four files where I had to remove various things imported from ring_integer and importing it, I got stuck in sage/libs/ntl/ntl_ZZ_p.pyx complaining about not being able to cast a ZZ_c* to a Py_Object and gave up.
comment:34 Changed 7 years ago by
For info I also get the FATAL UNREF in the same place on Sage 5.2 so this is unrelated to memleaks patches.
comment:35 Changed 7 years ago by
It seems that addition of Integer's is broken.
comment:36 Changed 7 years ago by
As well as substraction and multiplication and powering, but not negation...
Note that powering an Integer by an int seems fine.
comment:37 follow-up: ↓ 41 Changed 7 years ago by
Yes you can't do any arithmetic while the circular import is still on its way. For starters it invokes coercion so its a huge mess. The following lets me get past it
big = Integer('340282366920938463463374607431768211457') # two**128 + one
Of course it dies in the next place where stupid computations are performed upon import.
comment:38 follow-up: ↓ 40 Changed 7 years ago by
Actually now I'm getting
ImportError: /home/vbraun/opt/sage-5.6.beta0/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_libsingular.so: undefined symbol: _Z7_p_TestP8spolyrecP9sip_sringi
Or, unmangled:
[vbraun@volker-desktop sage-5.6.beta0]$ echo _Z7_p_TestP8spolyrecP9sip_sringi | c++filt _p_Test(spolyrec*, sip_sring*, int)
This seems to be a singular debug function that is not exported into the Singular libraries.
comment:39 Changed 7 years ago by
Ah of course thats in a #ifdef PDEBUG
block. I guess that means Polynomials DEBUG to Singular %-)
comment:40 in reply to: ↑ 38 Changed 7 years ago by
Replying to vbraun:
Actually now I'm getting
ImportError: /home/vbraun/opt/sage-5.6.beta0/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_libsingular.so: undefined symbol: _Z7_p_TestP8spolyrecP9sip_sringiOr, unmangled:
[vbraun@volker-desktop sage-5.6.beta0]$ echo _Z7_p_TestP8spolyrecP9sip_sringi | c++filt _p_Test(spolyrec*, sip_sring*, int)
I get the same indeed.
This seems to be a singular debug function that is not exported into the Singular libraries.
comment:41 in reply to: ↑ 37 Changed 7 years ago by
Replying to vbraun:
Yes you can't do any arithmetic while the circular import is still on its way.
If I had statements at the end of integer_ring.pyx and integer.pyx they get executed before all this mess, so I thought that in this case it was not a circular import problem.
For starters it invokes coercion so its a huge mess.
I don't see any coercion involved, where did you spot it?
The following lets me get past it
big = Integer('340282366920938463463374607431768211457') # two**128 + oneOf course it dies in the next place where stupid computations are performed upon import.
comment:42 Changed 7 years ago by
What is strange is that I can compute one + one in integer.pyx and that succeeds and when the "same" computation is performed later in padic_ZZ_pX_element.pyx it fails when Python tries to dealloc the result...
In fact it depends on where I compute one + one in integer.pyx, I'm getting lost now.
comment:43 Changed 7 years ago by
We (=distutils) usually compile Cython modules with -DNDEBUG
, but apparently not in a debug build. This is what switches on Singular's debugging stuff.
Not sure EXACTLY why it blows up doing integer arithmetic, but according to Simon's import list it is also during import of the coercion system. Which will need to access sample elements of rings etc.
comment:44 Changed 7 years ago by
My problem is that I'm not sure the problem Simon pointed out (and I can reproduce) and which definitely involves circular import is related to the one you reported (and i can reproduce as well, nut obviously issuing a different "import" command).
comment:45 Changed 7 years ago by
Ok, I think I got the problem you reported (the one segfault doing basic arith with Integer's).
If I'm correct, the problem is that we hook up Integer creation and deletion and Python debug gets confused. Have a look at the end of integer.pyx. If you try to compute "one + one" before the call to hook_fast_tp_functions() it succeeds, but after that it will fail during deallocation.
comment:46 Changed 7 years ago by
In particular the reference to the previous and next object in the doubly linked list of allocated object must be complete garbage, what makes the debug Python raise the FATAL invalid error.
comment:47 Changed 7 years ago by
The question now is "can we -- or even should -- we fix this?".
The simplest way would be to detect at compile time that we're using a debug build and fill garbage, but satisfying for the debug checks, things in ob_prev and ob_next, let's say that they both point to the object itself?
comment:48 Changed 7 years ago by
Or we could not call the hook install function, but I guess that would be cheating... although I'm going to try right now to see if further problems can be discovered.
comment:49 Changed 7 years ago by
And got stuck as well by the Singular problem.
comment:50 Changed 7 years ago by
For the Singular problem, replace #ifdef NDEBUG
in mod2.h
with #if 0
and rebuild (sage -ba
)
comment:51 Changed 7 years ago by
Oh, I tried to rebuild singular with SAGE_DEBUG=yes (which actually does something smart, contrary to what the doc currently says :) and just got a segfault when starting Sage.
comment:52 Changed 7 years ago by
It fails in pynac (while trying to divide things).
In fact I cannot even rebuild pynac as it complains that it does not find distutils.
comment:53 Changed 7 years ago by
Which had to be expected because the autoconf test will indeed not work with a debug build, it checks that the error (and standard) output are empty.
comment:54 Changed 7 years ago by
After rebuilding pynac, it now segfaults in groupoid.py with an UNREF error.
comment:55 Changed 7 years ago by
Nevermind, it seems to fail while initializing "I".
comment:56 Changed 7 years ago by
It fails while doing some coercion stuff.
comment:57 follow-up: ↓ 59 Changed 7 years ago by
Did you fix the pynac spkg? Ticket number?
comment:58 follow-up: ↓ 60 Changed 7 years ago by
Could somebody please clarify: when I use this spkg as it currently is and build Sage with SAGE_DEBUG=yes
, does it make it impossible to build or use Sage?
If the answer to the above question is "yes", I don't think we should merge this ticket. Building with SAGE_DEBUG=yes
should result in a working Sage.
comment:59 in reply to: ↑ 57 Changed 7 years ago by
Replying to vbraun:
Did you fix the pynac spkg? Ticket number?
Just a hack, I removed the test for distutils in configure. The problem is that the bad test is in the macro AX_PYTHON_DEVEL which also defines needed stuff.
Not sure if we can replace this macro by other macro defining what's needed.
Another solution is to report that "upstream" whereever upstrea autoconf-archive is.
comment:60 in reply to: ↑ 58 Changed 7 years ago by
Replying to jdemeyer:
Could somebody please clarify: when I use this spkg as it currently is and build Sage with
SAGE_DEBUG=yes
, does it make it impossible to build or use Sage?If the answer to the above question is "yes", I don't think we should merge this ticket. Building with
SAGE_DEBUG=yes
should result in a working Sage.
It does not currently starts (and wont even build because of pynac), so do not merge the ticket.
comment:61 Changed 7 years ago by
- Dependencies changed from #13865 to #13865, ...
- Milestone changed from sage-5.6 to sage-pending
OK, the tickets fixing building and/or running Sage with this spkg should be added as dependency then.
comment:62 Changed 7 years ago by
Just found other hooked tp_* functions in real_double. Strange I did not stop them earlier.
And... now Sage starts!
comment:63 Changed 7 years ago by
- Dependencies changed from #13865, ... to #13865, #13867, #13868
- Status changed from positive_review to needs_work
- Work issues set to make sure Sage builds and starts
comment:64 follow-up: ↓ 65 Changed 7 years ago by
Other good news: I don't get any problems while testing sage/modules/module.pyx now.
comment:65 in reply to: ↑ 64 ; follow-up: ↓ 66 Changed 7 years ago by
Replying to jpflori:
Other good news: I don't get any problems while testing sage/modules/module.pyx now.
I think I've spoken too fast. I've rebuild a fresh 5.6.beta0 with cython 0.17.3 and still get the segfaults there.
comment:66 in reply to: ↑ 65 Changed 7 years ago by
Replying to jpflori:
Replying to jpflori:
Other good news: I don't get any problems while testing sage/modules/module.pyx now.
I think I've spoken too fast. I've rebuild a fresh 5.6.beta0 with cython 0.17.3 and still get the segfaults there.
And now I've rebuilt on top of that install with debug enabled, the bug seems to be gone... So maybe the problem is with the fast tp_* functions (which I've disabled for now because the suggested fix in the comments lead to segfaults)?
comment:67 Changed 7 years ago by
In debug mode the pymalloc allocator is still used by default (but extra debugging in the pymalloc allocator is active). We would have to disable pymalloc (--without-pymalloc
) to use the system malloc/free. This means that it is still not useful for valgrind. Just wanted to throw this out so that everyone is aware of it. I don't mind the current state. The Python docs seem to suggest that this (i.e. --with-pymalloc
, the default) is the more useful debug setting.
comment:68 Changed 7 years ago by
- Dependencies changed from #13865, #13867, #13868 to #13865, #13867, #13868, #13876, #13832
- Description modified (diff)
- Type changed from enhancement to task
I'm making this into a meta-ticket to collect information to build a Python debug version.
Looks good to me! I'm adding my proposed change to the documentation as a prerequisite to not deviate from whats documented...