I don't see any big problems with the overall approach at first glance. And the result is great! David
On Thu, Nov 20, 2014 at 10:45 PM, Jeroen Demeyer <jdeme...@cage.ugent.be> wrote: > 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. -- 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.