[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] Bug: Babel: haskell code evaluation inconsistency [7.7 (release_7.7.
From: |
Major A |
Subject: |
[O] Bug: Babel: haskell code evaluation inconsistency [7.7 (release_7.7.160.g3e33)] |
Date: |
Sat, 20 Aug 2011 00:38:52 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Hi again,
I want to use haskell code blocks in order to evaluate them. The
problem is that, depending on what haskell interpreters are installed
on the computer, Babel will call a different interpreter to evaluate
the code with. Also, the haskell interpreter interface appears to be
highly stateful and unreliable.
Here's an example -- ghc6 is installed, but not hugs:
#+begin_src haskell :results output
import System.IO
openFile "doesNotExist.ppt" ReadMode
#+end_src
#+results:
: Loading package ghc-prim ... linking ... done.
: Loading package integer-gmp ... linking ... done.
: Loading package base ... linking ... done.
The interesting thing is that this output only occurs on the first run
of the code -- if I hit C-cC-c again, the #+results: section will be
empty.
Now the same source, with hugs installed in addition to ghc6 -- the
source block is the same, but the output is very different:
#+results:
: Type :? for help
: ERROR - Syntax error in expression (unexpected keyword "import")
Again, if I press C-cC-c again, the first line of output ("Type :? for
help") is no longer present.
This is what I suggest:
- Do away with "haskell" as the keyword for haskell code blocks, just
like graphviz blocks use "dot" instead of simply "graphviz".
- Introduce new keywords -- I propose at least "runghc", "ghci", and
"hugs". This is important since there are significant source-level
differences (see above) between hugs and ghc and even between the
compiler and interpreter from the same project (ghc and ghci).
Without these, the progammer will never be able to predict how the
code is evaluated and which compiler or interpreter they must code
for.
- Make sure the incorporation of the output or the value is done
correctly (also see my previous bug report for this).
Enough for today,
András
Emacs : GNU Emacs 23.3.1 (i486-pc-linux-gnu, GTK+ Version 2.24.3)
of 2011-04-10 on raven, modified by Debian
Package: Org-mode version 7.7 (release_7.7.160.g3e33)
current state:
==============
(setq
org-export-latex-after-initial-vars-hook '(org-beamer-after-initial-vars)
org-speed-command-hook '(org-speed-command-default-hook
org-babel-speed-command-hook)
org-babel-load-languages '((asymptote . t) (ditaa . t) (dot . t) (gnuplot . t)
(haskell . t) (latex . t) (octave . t)
(R . t) (ruby . t) (scheme . t) (sh
. t))
org-metaup-hook '(org-babel-load-in-session-maybe)
org-after-todo-state-change-hook '(org-clock-out-if-current)
org-babel-tangle-lang-exts '(("ruby" . "rb") ("latex" . "tex") ("haskell" .
"hs") ("asymptote" . "asy")
("emacs-lisp" . "el"))
org-export-blocks-postblock-hook '(org-exp-res/src-name-cleanup)
org-export-latex-format-toc-function 'org-export-latex-format-toc-default
org-tab-first-hook '(org-hide-block-toggle-maybe
org-src-native-tab-command-maybe org-babel-hide-result-toggle-maybe)
org-src-mode-hook '(org-src-babel-configure-edit-buffer
org-src-mode-configure-edit-buffer)
org-confirm-shell-link-function 'yes-or-no-p
org-export-first-hook '(org-beamer-initialize-open-trackers)
org-agenda-before-write-hook '(org-agenda-add-entry-text)
org-blank-before-new-entry nil
org-babel-pre-tangle-hook '(save-buffer)
org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers
org-cycle-show-empty-lines
org-optimize-window-after-visibility-change)
org-export-preprocess-before-normalizing-links-hook
'(org-remove-file-link-modifiers)
org-mode-hook '(#[nil "\300\301\302\303\304$\207" [org-add-hook
change-major-mode-hook org-show-block-all append local]
5]
#[nil "\300\301\302\303\304$\207"
[org-add-hook change-major-mode-hook
org-babel-show-result-all append local] 5]
org-babel-result-hide-spec
org-babel-hide-all-hashes)
org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point
org-babel-execute-safely-maybe)
org-confirm-elisp-link-function 'yes-or-no-p
org-export-interblocks '((lob org-babel-exp-lob-one-liners) (src
org-babel-exp-inline-src-blocks))
org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
org-occur-hook '(org-first-headline-recenter)
org-from-is-user-regexp nil
org-export-preprocess-before-selecting-backend-code-hook
'(org-beamer-select-beamer-code)
org-confirm-babel-evaluate nil
org-export-latex-final-hook '(org-beamer-amend-header org-beamer-fix-toc
org-beamer-auto-fragile-frames
org-beamer-place-default-actions-for-lists)
org-metadown-hook '(org-babel-pop-to-session-maybe)
org-export-blocks '((src org-babel-exp-src-block nil) (comment
org-export-blocks-format-comment t)
(ditaa org-export-blocks-format-ditaa nil) (dot
org-export-blocks-format-dot nil))
)
- [O] Bug: Babel: haskell code evaluation inconsistency [7.7 (release_7.7.160.g3e33)],
Major A <=