From mboxrd@z Thu Jan 1 00:00:00 1970 From: Aaron Ecay Subject: Re: [babel] :eval and #+call lines Date: Wed, 04 Nov 2015 14:58:30 +0000 Message-ID: <87vb9hvmjt.fsf@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:46316) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtzWF-0001p5-OU for emacs-orgmode@gnu.org; Wed, 04 Nov 2015 09:58:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZtzWC-0005Tl-ID for emacs-orgmode@gnu.org; Wed, 04 Nov 2015 09:58:35 -0500 Received: from mail-wi0-x232.google.com ([2a00:1450:400c:c05::232]:36305) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtzWC-0005Td-Ba for emacs-orgmode@gnu.org; Wed, 04 Nov 2015 09:58:32 -0500 Received: by wicfx6 with SMTP id fx6so91098786wic.1 for ; Wed, 04 Nov 2015 06:58:31 -0800 (PST) In-Reply-To: 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 , emacs-orgmode@gnu.org Hi Andreas, 2015ko urriak 29an, Andreas Leha-ek idatzi zuen: >=20 > Hi all, >=20 > Since this is not related to caching, I post this as a separate question > from [1]. Thanks for the report. >=20 > I want to argue that specifying ':eval never' as argument to a #+call > line should transitively apply to the called block as well. I=E2=80=99m not sure what we should do here. The system of inner and outer header args is consistent, even when it leads to strange results as in this case. I would hesitate to introduce special cases to the system. A better option would be to fix the system in general. Ideally we would not need both sets of header arguments. Currently, for evaluating: #+call: foo[:inner args](bar=3D"baz") :outer args babel in effect evaluates this dummy elisp code block: #+begin_src emacs-lisp :var results=3Dfoo(bar=3D"baz") results #+end_src Resolving the :var reference causes the block named foo to be evaluated. The inner args go to the foo block, and the outer args are added to the dummy elisp block. It would be better (less confusing) if there were no need to evaluate the dummy elisp block. Rather, foo should be evaluated and its result inserted directly (somehow...). This change is not straightforward though. It also has backwards compatibility implications (what to do with the header args when both sets are given). And it interacts with the behavior of :cache, as you=E2=80=99ve pointed out in the other thread. Certainly a warning could be put in the manual about this case (patches welcome...) --=20 Aaron Ecay