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)) )