Re: [O] Babel more verbose?
On Tue, Sep 2, 2014 at 11:01 AM, David Wagle david.wa...@gmail.com wrote: It sounds like perhaps the issue is code blocks with a long run-time that may or may not fail or hang in some way? If that's the case, the solution is probably simply breaking up your code blocks into smaller bits of code so that you more easily follow what's happening. If the code is emacs-lisp, it's easy enough to put (message ...) calls entering and leaving the code blocks. The defadvice idea is great; I will try it and report back. As for breaking up my code blocks... I wish I could, but some of my SQL queries are just very long running. We have a lot of data. I want to look into indexing and other SQL optimizations -- but I need something in my org-mode to at least show me which blocks are the long-running ones, so I can know where to start! Someone else mentioned that the message about Wrote sql input file could be suppressed; just don't forget that we users need _something_ to help debug our babel code. If one of my sql queries goes wrong, I get something like this in the messages buffer: executing Sql code block (machines-by-week)... mysql ... -N c:/tmp/babel-26204dNc/sql-in-26204uKN c:/tmp/babel-26204dNc/sql-out-262047UT Wrote c:/tmp/babel-26204dNc/ob-input-26204IfZ Babel evaluation exited with code 1 so in this case it'd be OK if the Wrote file went away, because the entire mysql command is still there, so I can find that temp file (which babel doesn't clean up, btw, and in my case that's a good thing!) and trace it back to which code block it came from. But it would be way better if mysql-mode would actually show the sql error! -- Gary
[O] Babel more verbose?
I have an org-mode babel program/document that takes about half an hour to run (end result is a LaTeX or HTML doc with figures). It's a mix of SQL and python. (The SQL is the slow part.) I'd really like it if org-mode could tell me, while it's running, which named block it's processing. Is there anything like that available? An option perhaps? -- Gary
Re: [O] Babel more verbose?
Try this: #+BEGIN_SRC emacs-lisp (defadvice org-babel-execute-src-block (around progress nil activate) create a buffer indicating what is running (let ((code-block (org-element-property :name (org-element-at-point))) (cb (current-buffer))) (split-window-below) (other-window 1) (switch-to-buffer *My Babel*) (insert (format Running %s code-block)) (other-window 1) ad-do-it (kill-buffer *My Babel*) (delete-other-windows))) #+END_SRC It will mess with your windows a bit, but it does what you want I think. Gary Oberbrunner ga...@oberbrunner.com writes: I have an org-mode babel program/document that takes about half an hour to run (end result is a LaTeX or HTML doc with figures). It's a mix of SQL and python. (The SQL is the slow part.) I'd really like it if org-mode could tell me, while it's running, which named block it's processing. Is there anything like that available? An option perhaps? -- --- John Kitchin Professor Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 http://kitchingroup.cheme.cmu.edu
Re: [O] Babel more verbose?
John Kitchin jkitc...@andrew.cmu.edu writes: Try this: #+BEGIN_SRC emacs-lisp (defadvice org-babel-execute-src-block (around progress nil activate) create a buffer indicating what is running (let ((code-block (org-element-property :name (org-element-at-point))) (cb (current-buffer))) (split-window-below) (other-window 1) (switch-to-buffer *My Babel*) (insert (format Running %s code-block)) (other-window 1) ad-do-it (kill-buffer *My Babel*) (delete-other-windows))) #+END_SRC It will mess with your windows a bit, but it does what you want I think. Wouldn't a (message (format Running %s code-block)) be enough? That would avoid all the window munging. Gary Oberbrunner ga...@oberbrunner.com writes: I have an org-mode babel program/document that takes about half an hour to run (end result is a LaTeX or HTML doc with figures). It's a mix of SQL and python. (The SQL is the slow part.) I'd really like it if org-mode could tell me, while it's running, which named block it's processing. Is there anything like that available? An option perhaps? -- Nick
Re: [O] Babel more verbose?
It sounds like perhaps the issue is code blocks with a long run-time that may or may not fail or hang in some way? If that's the case, the solution is probably simply breaking up your code blocks into smaller bits of code so that you more easily follow what's happening. If the code is emacs-lisp, it's easy enough to put (message ...) calls entering and leaving the code blocks. On Tue, Sep 2, 2014 at 9:54 AM, Nick Dokos ndo...@gmail.com wrote: John Kitchin jkitc...@andrew.cmu.edu writes: Try this: #+BEGIN_SRC emacs-lisp (defadvice org-babel-execute-src-block (around progress nil activate) create a buffer indicating what is running (let ((code-block (org-element-property :name (org-element-at-point))) (cb (current-buffer))) (split-window-below) (other-window 1) (switch-to-buffer *My Babel*) (insert (format Running %s code-block)) (other-window 1) ad-do-it (kill-buffer *My Babel*) (delete-other-windows))) #+END_SRC It will mess with your windows a bit, but it does what you want I think. Wouldn't a (message (format Running %s code-block)) be enough? That would avoid all the window munging. Gary Oberbrunner ga...@oberbrunner.com writes: I have an org-mode babel program/document that takes about half an hour to run (end result is a LaTeX or HTML doc with figures). It's a mix of SQL and python. (The SQL is the slow part.) I'd really like it if org-mode could tell me, while it's running, which named block it's processing. Is there anything like that available? An option perhaps? -- Nick
Re: [O] Babel more verbose?
I am curious about how to get more reporting when tangling is occurring because I would like to narrow down what parts of my document are slow to tangle so that I can refactor them and speed it up. Grant Rettke | ACM, ASA, FSF g...@wisdomandwonder.com | http://www.wisdomandwonder.com/ “Wisdom begins in wonder.” --Socrates ((λ (x) (x x)) (λ (x) (x x))) “Life has become immeasurably better since I have been forced to stop taking it seriously.” --Thompson On Tue, Sep 2, 2014 at 10:01 AM, David Wagle david.wa...@gmail.com wrote: It sounds like perhaps the issue is code blocks with a long run-time that may or may not fail or hang in some way? If that's the case, the solution is probably simply breaking up your code blocks into smaller bits of code so that you more easily follow what's happening. If the code is emacs-lisp, it's easy enough to put (message ...) calls entering and leaving the code blocks. On Tue, Sep 2, 2014 at 9:54 AM, Nick Dokos ndo...@gmail.com wrote: John Kitchin jkitc...@andrew.cmu.edu writes: Try this: #+BEGIN_SRC emacs-lisp (defadvice org-babel-execute-src-block (around progress nil activate) create a buffer indicating what is running (let ((code-block (org-element-property :name (org-element-at-point))) (cb (current-buffer))) (split-window-below) (other-window 1) (switch-to-buffer *My Babel*) (insert (format Running %s code-block)) (other-window 1) ad-do-it (kill-buffer *My Babel*) (delete-other-windows))) #+END_SRC It will mess with your windows a bit, but it does what you want I think. Wouldn't a (message (format Running %s code-block)) be enough? That would avoid all the window munging. Gary Oberbrunner ga...@oberbrunner.com writes: I have an org-mode babel program/document that takes about half an hour to run (end result is a LaTeX or HTML doc with figures). It's a mix of SQL and python. (The SQL is the slow part.) I'd really like it if org-mode could tell me, while it's running, which named block it's processing. Is there anything like that available? An option perhaps? -- Nick
Re: [O] Babel more verbose?
Nick Dokos ndo...@gmail.com writes: I found a message is not sufficient because I get another message from running the code block that looks like: Wrote /var/folders/5q/lllv2yf95hg_n6h6kjttbmdwgn/T/babel-27354lYd/ob-input-27354uxF and it obscures the first message so you cannot tell what is happening. Here is a another approach that simply puts an overlay to change the color of the text in the code block while running. #+BEGIN_SRC emacs-lisp (defadvice org-babel-execute-src-block (around progress nil activate) create a buffer indicating what is running (let ((ol (make-overlay (org-element-property :begin (org-element-at-point)) (org-element-property :end (org-element-at-point) (overlay-put ol 'face '(foreground-color . blue)) ad-do-it (delete-overlay ol))) #+END_SRC John Kitchin jkitc...@andrew.cmu.edu writes: Try this: #+BEGIN_SRC emacs-lisp (defadvice org-babel-execute-src-block (around progress nil activate) create a buffer indicating what is running (let ((code-block (org-element-property :name (org-element-at-point))) (cb (current-buffer))) (split-window-below) (other-window 1) (switch-to-buffer *My Babel*) (insert (format Running %s code-block)) (other-window 1) ad-do-it (kill-buffer *My Babel*) (delete-other-windows))) #+END_SRC It will mess with your windows a bit, but it does what you want I think. Wouldn't a (message (format Running %s code-block)) be enough? That would avoid all the window munging. Gary Oberbrunner ga...@oberbrunner.com writes: I have an org-mode babel program/document that takes about half an hour to run (end result is a LaTeX or HTML doc with figures). It's a mix of SQL and python. (The SQL is the slow part.) I'd really like it if org-mode could tell me, while it's running, which named block it's processing. Is there anything like that available? An option perhaps? -- Nick -- --- John Kitchin Professor Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 http://kitchingroup.cheme.cmu.edu
Re: [O] Babel more verbose?
John Kitchin jkitc...@andrew.cmu.edu writes: I found a message is not sufficient because I get another message from running the code block that looks like: Wrote /var/folders/5q/lllv2yf95hg_n6h6kjttbmdwgn/T/babel-27354lYd/ob-input-27354uxF and it obscures the first message so you cannot tell what is happening. Right - that seems to be quite accidental though: it is done by write-region in ob-eval.el:org-babel--shell-command-on-region when it writes the input file, before it is passed to the shell for execution; hardly a significant milestone. I wonder if that call should be changed to suppress the message, something like (write-region start end input-file nil 'no-message) quite apart from the problem at hand. -- Nick Try this: #+BEGIN_SRC emacs-lisp (defadvice org-babel-execute-src-block (around progress nil activate) create a buffer indicating what is running (let ((code-block (org-element-property :name (org-element-at-point))) (cb (current-buffer))) (split-window-below) (other-window 1) (switch-to-buffer *My Babel*) (insert (format Running %s code-block)) (other-window 1) ad-do-it (kill-buffer *My Babel*) (delete-other-windows))) #+END_SRC It will mess with your windows a bit, but it does what you want I think. Wouldn't a (message (format Running %s code-block)) be enough? That would avoid all the window munging. Gary Oberbrunner ga...@oberbrunner.com writes: I have an org-mode babel program/document that takes about half an hour to run (end result is a LaTeX or HTML doc with figures). It's a mix of SQL and python. (The SQL is the slow part.) I'd really like it if org-mode could tell me, while it's running, which named block it's processing. Is there anything like that available? An option perhaps? -- Nick -- Nick