From: Andras Major <andras.g.major@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Babel woes
Date: Wed, 17 Aug 2011 14:59:49 +0200 [thread overview]
Message-ID: <CALPHr6xUKd2kk69Rzus19-S5-w1Oxn0EX7VmWfgtcLgA4y5-gA@mail.gmail.com> (raw)
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?
- 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
next reply other threads:[~2011-08-17 12:59 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-17 12:59 Andras Major [this message]
2011-08-17 13:51 ` Babel woes Sebastien Vauban
2011-08-17 17:37 ` Thomas S. Dye
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
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=CALPHr6xUKd2kk69Rzus19-S5-w1Oxn0EX7VmWfgtcLgA4y5-gA@mail.gmail.com \
--to=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 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).