From mboxrd@z Thu Jan 1 00:00:00 1970 From: cberry@tajo.ucsd.edu Subject: new exporter - noweb substitution issues Date: Tue, 20 Nov 2012 13:40:52 -0800 Message-ID: <87ehjogdgb.fsf@tajo.ucsd.edu> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([208.118.235.92]:48356) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TavZ9-0002PC-34 for emacs-orgmode@gnu.org; Tue, 20 Nov 2012 16:41:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TavZ7-0006BZ-VB for emacs-orgmode@gnu.org; Tue, 20 Nov 2012 16:41:11 -0500 Received: from plane.gmane.org ([80.91.229.3]:37975) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TavZ7-0006BT-OT for emacs-orgmode@gnu.org; Tue, 20 Nov 2012 16:41:09 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1TavZC-0004cU-Uf for emacs-orgmode@gnu.org; Tue, 20 Nov 2012 22:41:14 +0100 Received: from tajo.ucsd.edu ([137.110.122.165]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 20 Nov 2012 22:41:14 +0100 Received: from cberry by tajo.ucsd.edu with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 20 Nov 2012 22:41:14 +0100 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: emacs-orgmode@gnu.org When I tried to export a large subtree, it took over *5 minutes* to export with release_7.9.2-597-gd4b739. Using the contrib/lisp/*.el files from org-mode-7.8.11 it took *5 seconds*. The subtree has a couple dozen '<<...>>'s in src blocks with ':noweb yes' and the file itself is 9600 lines long. If I change all to 'noweb no', then release_7.9.2-597-gd4b739 runs in about 5 seconds. Both cases use: # Local variables: # *org-babel-use-quick-and-dirty-noweb-expansion*:t I like to work interactively. Changing a little piece and then re-exporting to see how it looks is really helpful for me. Having to wait for 5 minutes to see how some small change affects the results just won't work for me. --- I also noticed on a toy test case (that does a lot of noweb lookups) that the value of *org-babel-use-quick-and-dirty-noweb-expansion* seems to have no effect on the reported difference between (get-internal-run-time) eval'ed at the start and again at end of the buffer exported using release_7.9.2-597-gd4b739. FWIW, this toy case runs much faster even though the number of noweb lookups is comparable. It is still slower than 7.8.11 iff I have *org-babel-use-quick-and-dirty-noweb-expansion*:t If there is something I can do to shed more light on this please let me know. --- One other noweb issue is that the code from an *unexported* src block cannot be used in subsequent blocks, which was not true for 7.8.11 and is not true for the old exporter. If the unexported src block is before the block that tries to copy its code, nothing is copied. I believe this is because the same temp buffer is used to look up the code and to store the result that is passed to the parser and unexported code gets deleted before noweb expansions are completed. --- Thanks, Chuck