emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] obtain ob-template.el for Babel language extension


From: Joe Riel
Subject: Re: [O] obtain ob-template.el for Babel language extension
Date: Wed, 16 Sep 2015 08:43:34 -0700

On Mon, 14 Sep 2015 16:37:04 -1000
Thomas S. Dye <address@hidden> wrote:

> Aloha all,
> 
> I took the liberty of forwarding Marco's queries to Eric Schulte, the
> author of ob-template.el.  Eric no longer maintains Babel or reads the
> mailing list, but he replied to the queries as follows:
> 
> > Marco Maggesi <address@hidden> writes:
> >
> >> Hi,
> >>
> >> I also have a few questions about ob-template.el
> >>
> >> 1. Can we assume that the HEAD version of ob-template.el is adequate as a
> >> basis for an implementation which is compatible with org version 8.2.xx
> >> (i.e., with older versions of org-mode)?
> >>
> 
> I would look at the latest commit to ob-template, and assume that it was
> sufficient to concurrent versions of Org-mode.  Alternate suitable
> jumping off points for development of new language extensions would be
> the more actively used languages.  Probably ob-shell is the most general
> and actively used.
> 
> >>
> >> 2. In function org-babel-execute:template functions first, second, third,
> >> etc are used to extract values from processed-params. However, such
> >> function are not defined in elisp, (nth N processed-params) should be used
> >> instead.  Is it correct?
> 
> This may incorrectly assume that cl.el has been loaded.  This is where
> these functions are defined.  They should probably be replaced with the
> less intuitive but more portable car, cadr, caddr, etc...
> 
> >> 
> >> Also, it seems from other examples that the usual approach is to use
> >> assoc, e.g., (cdr (assoc ":session" params)). Are there enforced
> >> conventions that ensure the order in processed-params?
> >>
> 
> I'm confused by the two components of this question.  First, yes assoc
> is commonly used as params is an association list, however the order of
> elements does not matter for an association list.  Second, no the order
> of the elements in processed-params is not guaranteed and you should not
> write code which makes assumptions about the order of the elements of
> this list (it is not mentioned in the documentation string of
> `org-babel-process-params').

The questions were related.  The real problem, as I pointed out previously,
is that using first, second (or car, etc) doesn't work because it assumes
an ordering that doesn't exist, as Eric notes.  As such, ob-template.el 
is broken and should be replaced.  If I get some cycles I'll push a
patch.

> 
> >>
> >> 3. In function org-babel-expand-body:template we assume that vars is a list
> >> of pairs.  However, it seems to me from some experiments that sometimes
> >> vars contains symbols. Am I wrong?
> >>
> 
> :var elements in params should always have the following form.
> 
>     (:var name . value)
> 
> Their cdr should always be a cons cell whose car is the name of the
> variable "as a symbol" and whose value is the value of the variable.
> 
> I hope this helps,
> Eric
> 
> 
> 
> Marco Maggesi <address@hidden> writes:
> 
> > Hi,
> >
> > I also have a few questions about ob-template.el
> >
> > 1. Can we assume that the HEAD version of ob-template.el is adequate as a
> > basis for an implementation which is compatible with org version 8.2.xx
> > (i.e., with older versions of org-mode)?
> >
> > 2. In function org-babel-execute:template functions first, second, third,
> > etc are used to extract values from processed-params. However, such
> > function are not defined in elisp, (nth N processed-params) should be used
> > instead.  Is it correct?
> > Also, it seems from other examples that the usual approach is to use assoc,
> > e.g.,  (cdr (assoc ":session" params)). Are there enforced conventions that
> > ensure the order in processed-params?
> >
> > 3. In function org-babel-expand-body:template we assume that vars is a list
> > of pairs.  However, it seems to me from some experiments that sometimes
> > vars contains symbols. Am I wrong?
> >
> > Thank you,
> > Marco
> >
> >
> > Il giorno ven 11 set 2015 alle ore 18:03 Thomas S. Dye <address@hidden> ha
> > scritto:
> >
> >> Aloha Joe,
> >>
> >> Joe Riel <address@hidden> writes:
> >>
> >> > On Thu, 10 Sep 2015 20:38:12 -1000
> >> > Thomas S. Dye <address@hidden> wrote:
> >> >
> >> >> Aloha Joe,
> >> >>
> >> >> Joe Riel <address@hidden> writes:
> >> >>
> >> >> > How do I get a copy of ob-template.el?
> >> >> > The file can be viewed at
> >> http://orgmode.org/w/worg.git/blob/HEAD:/org-contrib/babel/ob-template.el
> >> >> > however, that is an html file and not the elisp.
> >> >> > I tried using git to clone http://orgmode.org/w/worg.git
> >> >> > but that does not work.
> >> >>
> >> >> ~$ git clone git://orgmode.org/worg.git
> >> >>
> >> >> You should find ob-template.el in org-contrib/babel/
> >> >
> >> > Thanks, that was helpful.  Probably mention of that fact
> >> > should be added to the languages.org file---currently it
> >> > links directly to the html file which is less useful.
> >>
> >> Done.  Thanks.
> >>
> >> > Are elisp files that implement the languages in worg?
> >> > I found the *.org files that document them, but not their
> >> > sources.
> >>
> >> The language source files are distributed with Org mode.  You can find
> >> them at lisp/ob-*.el.
> >>
> >> hth,
> >> Tom
> >> --
> >> Thomas S. Dye
> >> http://www.tsdye.com
> >>
> >>
> 



-- 
Joe Riel




reply via email to

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