emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Discussion request: 15m tangle time, details follow


From: Aaron Ecay
Subject: Re: [O] Discussion request: 15m tangle time, details follow
Date: Wed, 18 Jun 2014 13:47:15 -0400
User-agent: Notmuch/0.17~rc2+11~g2de8ce9 (http://notmuchmail.org) Emacs/24.3.50.1 (i686-pc-linux-gnu)

Hi Sebastien,

2014ko ekainak 18an, Sebastien Vauban-ek idatzi zuen:
>
> Hi Aaron,
>
> Aaron Ecay wrote:
>> [...]
>> babel needs to fetch 30 properties per source block.  Indeed, this is
>> marked “deprecated” in the source, in favor of a system where there is
>> only one header arg.  This has been marked deprecated for almost exactly
>> a year in the code (Achim’s commit 90b16870 of 2013-06-23), but I don’t
>> know of any prominent announcement of the deprecation.
>
> I neither was aware of such a deprecation.
>
> Are you talking of the comment in function
> `org-babel-params-from-properties' (in ob-core.el)?
>
> Thought, I can't parse it yet the way you do -- without understanding
> much more of that code, as the comments differ in "at point of
> definition" vs "at point of call":
>
>      ;; DEPRECATED header arguments specified as separate property at
>      ;; point of definition
>
>      ;; header arguments specified with the header-args property at
>      ;; point of call

That also differs between the two methods.

,----
|
| * foo
|   :PROPERTIES:...
|
| #+name: xyz
| #+begin_src
|   ...
| #+end_src
|
| * bar
|   :PROPERTIES:...
|
| #+call: xyz()
`----

The current code looks for individual header arg properties at foo, but
for the property header-args at bar (for the #+call line)

>
> What you're talking about is for specifying header arguments in
> a subtree, anyway always at the same point:
>
>> [...] You’d then have to update your file:
>>
>> :PROPERTIES:
>> :exports: none
>> :tangle: no
>> :END:
>>
>> becomes
>>
>> :PROPERTIES:
>> :header-args: :exports none :tangle no
>> :END:
>>
>> The new system is also a bit inferior, in that it doesn’t allow header
>> arg inheritance as easily.  So with the one-prop-per-arg system the
>> following works as expected:
>>
>> * foo
>> :PROPERTIES:
>> :exports: none
>> :END:
>> ** bar
>> :PROPERTIES:
>> :tangle: no
>> :END:
>>
>> (src block here)
>>
>> On the other hand, in the new system there’s no way to specify some
>> header args at foo and some at bar; the lowest header-args property
>> wins.  (At least as far as I can see)
>
> Maybe the "+" mechanism for concatenating property strings would help
> here?

No, org-entry-get-with-inheritance will not continue climbing the tree
once it finds one instance of the property in question, as demonstrated
here:

,----
| * foo
|   :PROPERTIES:
|   :quux+:    abc
|   :END:
| ** bar
|    :PROPERTIES:
|    :quux+:    foo
|    :quux+:    bar
|    :END:
|
| #+BEGIN_SRC emacs-lisp
|   (org-entry-get nil "quux" t)
| #+END_SRC
|
| #+RESULTS:
| : foo bar
`----


--
Aaron Ecay



reply via email to

[Prev in Thread] Current Thread [Next in Thread]