From: Eric Schulte <eric.schulte@gmx.com>
To: Andreas Leha <andreas.leha@med.uni-goettingen.de>
Cc: emacs-orgmode@gnu.org
Subject: Re: Problem with noweb-ref property
Date: Mon, 02 Jan 2012 11:01:29 -0700 [thread overview]
Message-ID: <87k45ac6q4.fsf@gmx.com> (raw)
In-Reply-To: 87obum70ae.fsf@med.uni-goettingen.de
Andreas Leha <andreas.leha@med.uni-goettingen.de> writes:
> Tomas Grigera <tgrigera@gmail.com> writes:
>> Hi Eric,
>>
>> Thanks a lot for your quick reply and fix. Getting the git repo
>> version scares me a bit, but I guess I'll just have to take the
>> plunge! Here we go :)
>>
>> Thanks again,
>>
>> Tomas
>>
>> On Thu, Dec 29, 2011 at 16:51, Eric Schulte <eric.schulte@gmx.com> wrote:
>>> Tomas Grigera <tgrigera@gmail.com> writes:
>>>
>>>> Hi list,
>>>>
>>>> This is my first post, so just let me say first that I have been using
>>>> org-mode for 10 months or so and I love it. It's an exceptional
>>>> package, and before I ask my question I would just like to thank
>>>> Carsten, Bastien, and the community for the great work and for
>>>> sharing.
>>>>
>>>> Now my question: I am trying to extract code from a .org file by
>>>> tangling with noweb-style references. As I understand from the manual,
>>>> if I write <<foo>> in a code block, the line will be expanded with the
>>>> code block named foo. This name I can set with #+NAME: or with the
>>>> :noweb-ref header argument. Both ways work for me, except that I
>>>> cannont set the :noweb-ref argument through a property.
>>>>
>>>> The following example is almost verbatim from the manual:
>>>>
>>>> #+BEGIN_SRC sh :tangle yes :noweb yes :shebang #!/bin/sh
>>>> <<fullest-disk>>
>>>> #+END_SRC
>>>>
>>>> * the mount point of the fullest disk
>>>>
>>>> ** query all mounted disks
>>>>
>>>> #+HEADER: :noweb-ref fullest-disk
>>>> #+BEGIN_SRC sh
>>>> df \
>>>> #+END_SRC
>>>>
>>>>
>>>> ** strip the header row
>>>> :PROPERTIES:
>>>> :noweb-ref: fullest-disk
>>>> :END:
>>>> #+BEGIN_SRC sh :noweb yes
>>>> |sed '1d' \
>>>> #+END_SRC
>>>>
>>>>
>>>> If I understand correctly, tangling should produce a file which is a
>>>> concatenation of the two code blocks. However, when I do
>>>> org-babel-tangle, only the first block is inserted. Am I doing
>>>> something wrong?
>>>>
>>>> I'm with emacs 23.2.1 and org-mode 7.8.02
>>>>
>>>> Thanks in advance,
>>>>
>>>> Tomas
>>>>
>>>
>>> Hi Tomas,
>>>
>>> You are correct the behavior described above is a bug introduced by a
>>> fairly recent commit of mine which switched to using regular expressions
>>> when resolving noweb references in an attempt to decrease the time
>>> required to tangle code blocks (which can be significant in large code
>>> blocks).
>>>
>>> However correct performance is more important than fast performance.
>>> I've just pushed up a patch which fixes the bug you've described, and
>>> hopefully doesn't slow down the tangling process too significantly.
>>>
>>> Cheers,
>>>
>>> --
>>> Eric Schulte
>>> http://cs.unm.edu/~eschulte/
>
> Hi Eric,
>
> unfortunately, for me it does result in a considerably slow down.
> (Well, I did not bisect this time but still suspect the commit you
> mention in this thread.)
>
> As a test case you can still use
> http://pastebin.com/c42jS1Be
> from my last post on this matter and expand the first source block.
>
> Sorry to ask again: Would it be possible to speed things up again or to
> make the :noweb-ref feature optional?
>
Hi Andreas,
I've just pushed up a new variable to the git repository. To enable the
faster regexp-based method of noweb expansion (which is not able to
resolve noweb-ref header arguments inherited from sub-tree or file-wide
properties) put the following in your config.
(setq *org-babel-use-quick-and-dirty-noweb-expansion* t)
Best,
>
> Regards,
> Andreas
>
>
>
>
--
Eric Schulte
http://cs.unm.edu/~eschulte/
next prev parent reply other threads:[~2012-01-02 18:14 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-29 19:13 Problem with noweb-ref property Tomas Grigera
2011-12-29 19:51 ` Eric Schulte
2011-12-29 23:16 ` Tomas Grigera
2012-01-02 12:32 ` Andreas Leha
2012-01-02 18:01 ` Eric Schulte [this message]
2012-01-03 10:07 ` Andreas Leha
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k45ac6q4.fsf@gmx.com \
--to=eric.schulte@gmx.com \
--cc=andreas.leha@med.uni-goettingen.de \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).