From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Eric Schulte" Subject: [Babel] [Ann] varied updates and improvements Date: Thu, 21 Oct 2010 08:18:19 -0600 Message-ID: <87lj5r1vf8.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from [140.186.70.92] (port=34556 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1P8vyN-0003dT-8y for emacs-orgmode@gnu.org; Thu, 21 Oct 2010 10:18:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1P8vyM-0004iJ-0P for emacs-orgmode@gnu.org; Thu, 21 Oct 2010 10:18:27 -0400 Received: from mail-gy0-f169.google.com ([209.85.160.169]:42486) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1P8vyL-0004iC-SI for emacs-orgmode@gnu.org; Thu, 21 Oct 2010 10:18:25 -0400 Received: by gyd10 with SMTP id 10so3580966gyd.0 for ; Thu, 21 Oct 2010 07:18:25 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Org Mode Hello Babblers, I've just merged in a large group of changes to Babel (authored by Dan and myself) including a couple of user-visible enhancements and a significant cleanup of the code base. More information is available in the Changes.org file (relevant sections included below). Best -- Eric Incompatible Changes ===================== Code block hashes ------------------ Due to changes in the code resolving code block header arguments hashing of code block results should now re-run a code block when an argument to the code block has changed. As a result of this change *all* code blocks with cached results will be re-run after upgrading to the latest version. Testing update --------------- Anyone using the org-mode test suite will need to update the jump repository for test navigation by executing the following from the root of the org-mode repository. git submodule update Failure to update this repository will cause loading of org-test.el to throw errors. Details ======== Multi-line header arguments to code blocks ------------------------------------------- Code block header arguments can now span multiple lines using the new =#+header:= or =#+headers:= lines preceding a code block or nested in between the name and body of a named code block. Examples are given below. - multi-line header arguments on an un-named code block #+headers: :var data1=1 #+begin_src emacs-lisp :var data2=2 (message "data1:%S, data2:%S" data1 data2) #+end_src #+results: : data1:1, data2:2 - multi-line header arguments on a named code block #+source: named-block #+header: :var data=2 #+begin_src emacs-lisp (message "data:%S" data) #+end_src #+results: named-block : data:2 Unified handling of variable expansion for code blocks ------------------------------------------------------- The code used to resolve variable references in code block header arguments has now been consolidated. This both simplifies the code base (especially the language-specific files), and ensures that the arguments to a code block will not be evaluated multiple times. This change should not be externally visible to the Org-mode user. Improved Caching ----------------- Code block caches now notice if the value of a variable argument to the code block has changed, if this is the case the cache is invalidated and the code block is re-run. The following example can provide intuition for the new behavior. #+srcname: random #+begin_src R :cache yes runif(1) #+end_src #+results[a2a72cd647ad44515fab62e144796432793d68e1]: random 0.4659510825295 #+srcname: caller #+begin_src emacs-lisp :var x=random :cache yes x #+end_src #+results[bec9c8724e397d5df3b696502df3ed7892fc4f5f]: caller 0.254227238707244