From: tsd@tsdye.com (Thomas S. Dye)
To: Andras Major <andras.g.major@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: Babel woes
Date: Wed, 17 Aug 2011 07:37:00 -1000 [thread overview]
Message-ID: <m1d3g4lz2b.fsf@tsdye.com> (raw)
In-Reply-To: <CALPHr6xUKd2kk69Rzus19-S5-w1Oxn0EX7VmWfgtcLgA4y5-gA@mail.gmail.com> (Andras Major's message of "Wed, 17 Aug 2011 14:59:49 +0200")
Aloha Andras,
Andras Major <andras.g.major@gmail.com> writes:
> Hi everyone,
>
> I've been trying to use org-mode for report generation lately, and
> haven't really succeeded. Here's a list of issues I encounter:
>
> - Babel offers a way of generating a code block from the output or
> value of a code block. That new block, however, is forced to the
> same language as the original block -- that is doesn't allow me, for
> example, to use a Haskell block to create an asymptote figure which
> then generates an image in the HTML or PDF export version. Is there
> a way around this limitation?
Perhaps you could chain code blocks? Set your Haskell code block to
:results output and then pass it into the graphing function like this
example dot code block:
#+source: pst-to-fig
#+headers: :file pascals-triangle.pdf :cmdline -Tpdf
#+begin_src dot :var pst-vals=pst-to-dot :exports results
graph {
$pst-vals
}
#+end_src
This is an example Eric Schulte developed. The Haskell code block in
this instance would be pst-to-dot.
hth,
Tom
>
> - Ruby: is inf-ruby really required? Why can't I execute a ruby block
> without it?
>
> - Haskell: there are at least two interpreters that babel will invoke,
> depending on what is available (ghci and hugs), and those two are
> incompatible in some areas (such as loading modules, where the
> commands are different -- :add vs. :load). I haven't found a way of
> + forcing the use of a specific interpreter;
> + specifying command-line arguments to the interpreter (which would
> eliminate the need for :add or :load).
> This really makes using Haskell rather hit-and-miss, see below.
>
> - Haskell code usage is rather cumbersome: since Babel invokes an
> interpreter rather than runghc, a Haskell block doesn't nearly have
> the flexibility of a real Haskell program. In particular, one can
> only make definitions (portably) in the Haskell code by creating a
> separate block which is tangled but not executed. Another block,
> which is executed, can then load the tangled module and use its
> definitions (if it weren't for the problems described above and
> below).
>
> - The handling of interpreted Haskell appears to be rather dodgy: If I
> want to load a module (in ghci) and then evaluate some function,
> then I run into real trouble. None of my tests run at all when
> first loaded into emacs, but if I execute some tests in a certain
> order, it all starts working. I haven't been able to figure out yet
> what goes wrong and what "playing around" makes things work, but it
> appears that
> #+begin_src haskell
> :add SomeModule
> someFunction
> #+end_src
> will not work because the :add statement is ignored. If I put the
> two lines in separate Haskell blocks and execute each one
> separately, then things start to work.
>
> - I also tried using sbe to invoke a Haskell function from within a
> table formula. Here I usually get an error "ERROR - Undefined
> variable "x"", which sometimes goes away rather magically (I'm not
> sure what makes it go away), after which things work just fine.
> Emacs-lisp blocks written in the same manner work out of the box.
>
> - Haskell uses a static type system, and there is no such thing as
> automatic casting if a variable has the wrong type for a given
> function. Thus, if I evaluate the numbers of a table using Haskell
> and sbe, and some values have a decimal dot and other (integer) ones
> omit it, then one of these versions will throw an error. Is there a
> way of converting the values beforehand to a given type (say,
> Double), only to make Haskell happy?
>
> Can anyone give me a hint of why these things don't work and whether
> I'm doing something wrong?
>
> Oh, I'm using emacs from Debian testing (23.2+1-7) and org from git
> (cloned today).
>
> Thanks,
>
> András
>
>
--
Thomas S. Dye
http://www.tsdye.com
next prev parent reply other threads:[~2011-08-17 17:37 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-17 12:59 Babel woes Andras Major
2011-08-17 13:51 ` Sebastien Vauban
2011-08-17 17:37 ` Thomas S. Dye [this message]
2011-08-19 12:59 ` Eric Schulte
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m1d3g4lz2b.fsf@tsdye.com \
--to=tsd@tsdye.com \
--cc=andras.g.major@gmail.com \
--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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.