From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Hendy Subject: Re: Sagemath with org-babel? Date: Tue, 4 Nov 2014 18:36:23 -0600 Message-ID: References: <50203b7f.a14dec0a.6450.ffffdea3@mx.google.com> <877fzaob5s.fsf@uw.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:51537) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XloaJ-0005fj-Mb for emacs-orgmode@gnu.org; Tue, 04 Nov 2014 19:36:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XloaH-0005Ar-VP for emacs-orgmode@gnu.org; Tue, 04 Nov 2014 19:36:27 -0500 Received: from mail-lb0-x22a.google.com ([2a00:1450:4010:c04::22a]:51456) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XloaH-00059Y-DM for emacs-orgmode@gnu.org; Tue, 04 Nov 2014 19:36:25 -0500 Received: by mail-lb0-f170.google.com with SMTP id z12so3739200lbi.1 for ; Tue, 04 Nov 2014 16:36:23 -0800 (PST) In-Reply-To: <877fzaob5s.fsf@uw.edu> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Brady Trainor Cc: emacs-orgmode On Tue, Nov 4, 2014 at 4:26 PM, Brady Trainor wrote: > Darlan Cavalcante Moreira writes: > >> I have done this in the past, I don't have the files anymore. However, as >> Tom says it is very easy to modify the templates to make org work with >> sage. I remember I only needed some search and replace to make it work. >> >> Also, you may want to have a look at sage-mode first if you haven't >> already. >> http://wiki.sagemath.org/sage-mode >> >> With sage mode installed its is a simple matter to make "C-c '" edit the >> source code in sage-mode. >> > > I have tried "C-c '", but it did not work. I took a stab at fiddling with this and think sage "works," but not in the true babel sense like you might be expecting. My process: - install sage - $ sudo sage -f sage_mode - added the following to a minimal config: #+begin_src min-config (add-to-list 'load-path "~/.elisp/org.git/lisp/") (add-to-list 'load-path "/opt/sage/local/share/emacs/site-lisp/sage-mode/") (require 'sage "sage") (require 'sage-mode) (setq sage-command "/opt/sage/sage") #+end_src Having never played with sage/sage-mode, I found the "wiki" pretty unsatisfactory. It seemed to just cover installation, but nothing about how to actually use it once installed! On a complete whim, I added =(require 'sage-mode)=, which finally let me do what I was expecting, which was =M-x sage-mode=. With that, I'm able to use this simple file and *sort of* get it to work: #+begin_src test.sage print "Hello World" print 2^3 #+end_src Just using the various M-x sage-* auto completes, I saw =sage-run=, so I used that. It hangs for a bit and then pops up a *Sage-main* buffer but with no results. After going back to the test.sage buffer, I can C-c C-c at and it spits out the results in *Sage-main*. Next, I created a test.org file with the following: #+begin_src test.org * header #+begin_src sage print "Hello World" print 2^3 #+end_src #+end_src =C-c '= on the block gets me to a typical Org babel buffer, and I can =C-c C-c= in it and get results output to *Sage-main*. > My attempt: > > As suggested at https://bitbucket.org/gvol/sage-mode/src, I try > > #+BEGIN_SRC sh > sudo sage -f sage_mode > #+END_SRC > > After running this, the end of message includes the suggestion to add > > #+BEGIN_SRC emacs-lisp > (add-to-list 'load-path "/usr/lib/sagemath/local/share/emacs/site-lisp/sage-mode") > (require 'sage "sage") > (setq sage-command "/usr/lib/sagemath/sage") > #+END_SRC > > But if I try =C-c '= in a block like > > #+BEGIN_SRC sage > f(x) = x^2 > integrate(f(x), 1, 3).n() > #+END_SRC > > I get > > ,---- > | org-edit-src-code: No such language mode: sage-mode > `---- I think the issue is needing =(require 'sage-mode)= in .emacs. I seriously have *no idea* why the docs didn't say anything about this. Perhaps someone else can chime in regarding what one can do with =(require 'sage "sage")= but without loading sage-mode itself? The only additional function I could get was =M-x sage-update-autoloads=. Hope that helps! John > Also, I cannot publish to html in this way. > > _I tried copying ob-python.el to a file ob-sage.el and replacing all instances of "python" and "py" with "sage"._ > > I also tried > > #+BEGIN_SRC emacs-lisp > (add-to-list 'org-src-lang-modes '("sage" . sage)) > (org-babel-do-load-languages 'org-babel-load-languages > '((sage . t) > (emacs-lisp . t) > (latex . t) > (sh . t))) > #+END_SRC > > But it still tells me "No such language mode: sage-mode". > > Thoughts? > > -- > Brady > > >> >> -- >> Darlan >> >> At Mon, 06 Aug 2012 11:33:47 -1000, >> tsd@tsdye.com (Thomas S. Dye) wrote: >>> >>> Aloha Johan, >>> >>> Babel can be configured to support new languages, see >>> http://orgmode.org/worg/org-contrib/babel/languages.html#develop >>> >>> Someone will need to write language specific functions to support code >>> block evaluation in sage. There is a template for this. The functions >>> written for other languages provide good examples of what the >>> sage-specific functions might look like. >>> >>> hth, >>> Tom >>> >>> >>> >>> Johan Ekh writes: >>> >>> > Hi all, >>> > sage is not listed under languages that can be used with >>> > org-babel. But it is based on >>> > Python, is it possible to use it with org-babel? >>> > >>> > /Johan >>> > >>> > Sent from my iPad >>> > >>> >>> -- >>> Thomas S. Dye >>> http://www.tsdye.com >>> >