Hello,
I have a working proof-of-concept to improve tracebacks for preparsed
code and for Cython code. On http://trac.sagemath.org/ticket/71, you can
see an example of a new traceback.
This isn't a finished patch yet, but I would like some opinions on the
general approach first.
The main changes are:
1) Change the preparser to add the unpreparsed source as comments. Yes,
this increases the size of preparsed code a lot:
sage: preparse('2 + 3')
'Integer(2) + Integer(3) #sage_pp#:2 + 3'
2) When executing load() or attach(), always save the preparsed source
to a temporary file. This is needed to get any traceback at all for this
exec()ed code.
3) Add an upstream patch to IPython (which is likely to be accepted
upstream, I asked ipython-dev) to not replace the .pyx file by the .so
file in tracebacks.
4) Write a custom extract_tb() function which undoes preparsing in
tracebacks and which makes paths absolute w.r.t. SAGE_SRC. The latter is
needed because Cython filenames in tracebacks are relative.
5) Monkey-patch the Python library function traceback.extract_tb() with
this custom function when the SageTerminalApp starts.
--
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 post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.