Sorry it took so long to get back to you with a fix. I have added the ability to use emacsclient+function to view plot inline. This should be robust across all versions of Sage (though I haven't tested it) since it simply replaces the PNG_VIEWER with the emacsclient command. I haven't made it the default since it requires that emacsclient be set up properly. So just customize `sage-view-inline-plots-method', and you should be good to go. You will also have to ensure that `sage-view-emacsclient' is set properly. I think it should work for most people, but I'm not entirely sure. You'll also need to run (server-start) in your .emacs, but it will warn you of that.
Anyway, the new spkg is at https://bitbucket.org/gvol/sage-mode/downloads/sage_mode-20140904.spkg Let me know if you have any problems. -Ivan On Aug 12, 2014, at 7:05 AM, Emmanuel Charpentier <emanuel.charpent...@gmail.com> wrote: > > > Le mardi 12 août 2014 03:25:35 UTC+2, Ivan Andrus a écrit : > I'm not sure I understand. What do you mean when you say there is no > debugging? A recipe for what used to work and doesn't now would be great. > > Wekk, for oe thng, you can't trace a call : > > [ In emacs ] > sage: sage: def fact(n): > ....: if(n==1):return(1) > ....: else:return(n*fact(n-1)) > ....: > > sage: trace("fact(3)") > --------------------------------------------------------------------------- > NotImplementedError Traceback (most recent call last) > <ipython-input-20-a765fe6277a4> in <module>() > ----> 1 trace("fact(3)") > > /usr/local/sage-6.3/local/lib/python2.7/site-packages/sage/misc/trace.pyc in > trace(code, preparse) > 74 from sage.plot.plot import EMBEDDED_MODE > 75 if EMBEDDED_MODE: > ---> 76 raise NotImplementedError("the trace command is not > implemented in the Sage notebook; you must use the command line.") > 77 > 78 from IPython.core.debugger import Pdb > > NotImplementedError: the trace command is not implemented in the Sage > notebook; you must use the command line. > > This is the same message you get when attempting trace in the notebook. > > [ in command line ] > > sage: def fact(n): > ....: if(n==1):return(1) > ....: else:return(n*fact(n-1)) > ....: > sage: fact(3) > 6 > sage: trace("fact(3)") > > <string>(1)<module>() > > ipdb> s > --Call-- > > <ipython-input-1-0a880cb62556>(1)fact() > ----> 1 def fact(n): > 2 if(n==Integer(1)):return(Integer(1)) > 3 else:return(n*fact(n-Integer(1))) > > ipdb> s > > <ipython-input-1-0a880cb62556>(2)fact() > 1 def fact(n): > ----> 2 if(n==Integer(1)):return(Integer(1)) > 3 else:return(n*fact(n-Integer(1))) > > ipdb> s > > <ipython-input-1-0a880cb62556>(3)fact() > 2 if(n==Integer(1)):return(Integer(1)) > ----> 3 else:return(n*fact(n-Integer(1))) > 4 > > ipdb> s > --Call-- > > <ipython-input-1-0a880cb62556>(1)fact() > ----> 1 def fact(n): > 2 if(n==Integer(1)):return(Integer(1)) > 3 else:return(n*fact(n-Integer(1))) > > ipdb> s > > <ipython-input-1-0a880cb62556>(2)fact() > 1 def fact(n): > ----> 2 if(n==Integer(1)):return(Integer(1)) > 3 else:return(n*fact(n-Integer(1))) > > ipdb> s > > <ipython-input-1-0a880cb62556>(3)fact() > 2 if(n==Integer(1)):return(Integer(1)) > ----> 3 else:return(n*fact(n-Integer(1))) > 4 > > ipdb> s > --Call-- > > <ipython-input-1-0a880cb62556>(1)fact() > ----> 1 def fact(n): > 2 if(n==Integer(1)):return(Integer(1)) > 3 else:return(n*fact(n-Integer(1))) > > ipdb> s > > <ipython-input-1-0a880cb62556>(2)fact() > 1 def fact(n): > ----> 2 if(n==Integer(1)):return(Integer(1)) > 3 else:return(n*fact(n-Integer(1))) > > ipdb> s > --Return-- > 1 > > <ipython-input-1-0a880cb62556>(2)fact() > 1 def fact(n): > ----> 2 if(n==Integer(1)):return(Integer(1)) > 3 else:return(n*fact(n-Integer(1))) > > ipdb> s > --Return-- > 2 > > <ipython-input-1-0a880cb62556>(3)fact() > 2 if(n==Integer(1)):return(Integer(1)) > ----> 3 else:return(n*fact(n-Integer(1))) > 4 > > ipdb> s > --Return-- > 6 > > <ipython-input-1-0a880cb62556>(3)fact() > 2 if(n==Integer(1)):return(Integer(1)) > ----> 3 else:return(n*fact(n-Integer(1))) > 4 > > ipdb> s > --Return-- > None > > <string>(1)<module>() > > ipdb> s > > /usr/local/sage-6.3/local/lib/python/bdb.py(404)run() > 403 finally: > --> 404 self.quitting = 1 > 405 sys.settrace(None) > > ipdb> s > sage: > > > I certainly didn't intend to make things harder to debug, but maybe that's > why EMBEDDED_MODE wasn't used before. I like the interface a lot better this > way though. I guess I could change the plot functionality to recognize > EMACS_MODE or something. > > It could be interesting to search if the reasons forbidding trace in the > notebook are still valid. ut the notebook seem to be in "maintenance mode" > according to various threads in sage-devel, and has no clear successor (a > special mode of ipython-notebook ?Something like the SMC notebook ? Something > else ?) > , > > -Ivan > > On Aug 11, 2014, at 1:04 AM, Emmanuel Charpentier <emanuel.c...@gmail.com> > wrote: > >> May I express a wish ? >> >> The current solution uses the same output mode as the notebook. This has a >> somewhat serious drawback : no debugging... >> >> An alternative is to go through GUD to execute a "sageified" version of pdb, >> as suggested by one of the discussions pointed to by the relevant issue of >> the home site. But that introduces behaviour differences between command >> line sage and sage under emacs. Not good... >> >> HTH, >> >> -- >> Emmanuel Charpentier >> >> Le lundi 11 août 2014 05:11:34 UTC+2, Ivan Andrus a écrit : >> Thanks for reminding me. I released a new version of sage-mode (0.12--only >> the version number has changed), and opened >> http://trac.sagemath.org/ticket/16795 which needs review. I should have >> hurried to get it into 6.3 so that things weren't broken. Sorry. >> >> -Ivan >> >> On Aug 8, 2014, at 4:12 PM, Emmanuel Charpentier <emanuel.c...@gmail.com> >> wrote: >> >>> For future reference : >>> >>> Ivan Andrus did create a version of sage_mode that fixes the problem. It is >>> currently available at the development site, and not yet in the sage spkgs >>> set. Works nicely for me (with sage 6.3rc0). >>> >>> HTH, >>> >>> -- >>> Emmanuel Charpentier >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sage-support" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sage-support...@googlegroups.com. >> To post to this group, send email to sage-s...@googlegroups.com. >> Visit this group at http://groups.google.com/group/sage-support. >> For more options, visit https://groups.google.com/d/optout. > > > -- > You received this message because you are subscribed to the Google Groups > "sage-support" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sage-support+unsubscr...@googlegroups.com. > To post to this group, send email to sage-support@googlegroups.com. > Visit this group at http://groups.google.com/group/sage-support. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.