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.

Reply via email to