emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Andreas Leha <andreas.leha@med.uni-goettingen.de>
To: emacs-orgmode@gnu.org
Subject: Re: Problem with noweb-ref property
Date: Mon, 02 Jan 2012 13:32:09 +0100	[thread overview]
Message-ID: <87obum70ae.fsf@med.uni-goettingen.de> (raw)
In-Reply-To: CAJMNdQKtd9Nw-fbOq7dkvUTn5cA+-LrAprptPc_MFxsRJvgOhg@mail.gmail.com

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?

Regards,
Andreas

  reply	other threads:[~2012-01-02 12:32 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 [this message]
2012-01-02 18:01       ` Eric Schulte
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=87obum70ae.fsf@med.uni-goettingen.de \
    --to=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).