From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: [babel] howto debug #+call lines Date: Mon, 08 Oct 2012 20:31:14 -0600 Message-ID: <877gr0wf3r.fsf@gmx.com> References: <87pq4ztgkg.fsf@med.uni-goettingen.de> <87pq4x8www.fsf@gmx.com> <87k3v4tyqk.fsf@med.uni-goettingen.de> <87obkf14c8.fsf@gmx.com> <87vcelrvju.fsf@med.uni-goettingen.de> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([208.118.235.92]:50015) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TLPbk-0000sV-6b for emacs-orgmode@gnu.org; Mon, 08 Oct 2012 22:31:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TLPbi-0008Gu-NA for emacs-orgmode@gnu.org; Mon, 08 Oct 2012 22:31:44 -0400 Received: from mailout-eu.gmx.com ([213.165.64.42]:53382) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1TLPbi-0008Gk-Dy for emacs-orgmode@gnu.org; Mon, 08 Oct 2012 22:31:42 -0400 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: Andreas Leha Cc: emacs-orgmode@gnu.org Andreas Leha writes: > Hi Eric, > > >> Andreas Leha writes: >> >>> Hi Eric, >>> >>>> Andreas Leha writes: >>>> >>>>> Hi all, >>>>> >>>>> I am getting different results from the evaluation of a source block and >>>>> the evaluation of a #+call line to that block. >>>>> >>>>> Therefore, my question: Is there an equivalent to >>>>> org-babel-expand-src-block (C-c C-v v) for #+call lines? >>>>> >>>>> Or more general: How do I debug #+call lines? >>>>> >>>>> Regards, >>>>> Andreas >>>>> >>>> >>>> Can you provide a minimal example? >>>> >>>> You could write a code block equivalent to the call line. E.g., >>>> >>>> #+call: foo(bar=1) >>>> >>>> is equivalent to >>>> >>>> #+begin_src emacs-lisp :var results=foo(bar=1) >>>> results >>>> #+end_src >>> >>> Thanks for following this up. I found the problem in my case: The >>> header argument ':colnames yes' was missing from the call line, such that >>> the passed variables were different. (I've fallen into that trap >>> repeatedly, but do not learn, as it seems...) >>> >>> It would have been a lot easier to find this, if I had had the possibility >>> to do C-c C-v v on the call line to get the chance to step through the >>> (R-) code that is evaluated. Without this, it took me some time to >>> figure things out. >>> >>> So the question still stands: Is there the possibility to see what is >>> actually executed with a call line, similar to C-c C-v v on a source >>> block? >>> >> >> There is no body to expand in a call line so C-c C-v v would have >> nothing to show. You can however jump to the related code block and >> call C-c C-v v there. This process could be made faster by wrapping the >> org-babel-goto-named-src-block and org-babel-expand-src-block functions >> into a single function. >> >> >>> >>> For a small example consider: >>> >>> --- >>> #+name: foo >>> | bar | >>> | baz | >>> | bam | >>> >>> #+call: testblock[:var a=foo]() :colnames yes >>> >>> #+name: testblock >>> #+begin_src R :var a=foo :colnames yes >>> a <- a[,1] >>> data.frame(x=a) >>> #+end_src >>> --- >>> >>> Regards, >>> Andreas >>> >>> > > Thanks for the confirmation, that there is no possibility to expand a > #+call line. > > I know, that I can jump to the code block and expand that one (quite > fast with C-c C-v g RET C-c C-v v), but that is exactly *not* what I was > looking for. Because then, the header arguments to the source code > block will apply instead of the header arguments to the #+call line. > > I was hoping for a C-c C-v v on #+call lines, which would spare me from > modifying the source block's header arguments. But it is not a pressing > issue, just my laziness (and bad coding perhaps). > Patches are always welcome. :) The call line is evaluated by first expanding itself into a full code block, so perhaps you could add functionality to C-c C-v v so that it will expand this ephemeral code block. Additionally it may be easy to update C-c C-v I so that it works on call lines, which may provide the information you're after. Best, > > Regards, > Andreas > > > -- Eric Schulte http://cs.unm.edu/~eschulte