Re: [O] Bug: Babel Haskell mode [8.0.3 (8.0.3-30-g56b864-elpa @ /Users/ix/.emacs.d/elpa/org-20130610/)]

2013-06-13 Thread Simon Beaumont
Hi Eric,

Thanks for investigating this.

You got it! The blooming prompt! As you say the comint parser expects 
Prelude and I have customised my prompt in .ghci (also this wouldn't work 
with module loads like :m +Mymodule.Foo as this changes the ghci prompt). 

BTW if I use a unicode sequence for the prompt (like a greek lambda as a few 
knights of the lambda calculus do)  then accept-process-output hangs! 

Well at least that's me fixed! Would it be possible for comint to learn the 
prompt by sending an empty line and then adapting? -- It would need to do this 
every time it sees a :command and at startup. Of course this is ghci specific.

Or is the answer to write an evaluation server for ghc with a well defined 
client API? Then Haskell integration gets a lot easier -- this would be like 
slime (common-lisp) for Haskell. Might be worth an enquiry on the Haskell list 
as there is a Haskell API that might cover the requirement.


Simon Beaumont

---
On 13 Jun 2013, at 06:18, Eric Schulte schulte.e...@gmail.com wrote:

 Simon Beaumont si...@datalligator.com writes:
 
 Well that's really odd: I modded the paths in init.el and did the following:
 
 emacs -Q -l init.el foo.org
 
 When I eval'ed the code block in foo.org (twice) I still get message:
 Code block returned no value I've attached the inferior haskell
 buffer and all relevant files.
 
 (add-to-list 'load-path ~/.emacs.d/elpa/haskell-mode-20130610.152)
 
 I thought maybe it could be a difference between our haskell modes, so I
 switched to the latest available through my elpa (haskell-mode-13.6),
 and I still see the correct behavior.
 
 GHClet fac n = product [1..n]
 [(x,fac x) | x - [0..11]]
 org-babel-haskell-eoe
 i, version 7.6.3: http://www.haskell.org/ghc/  :? for help
 Loading package ghc-prim ... linking ... done.
 Loading package integer-gmp ... linking ... done.
 Loading package base ... linking ... done.
 [(0,1),(1,1),(2,2),(3,6),(4,24),(5,120),(6,720),(7,5040),(8,40320),(9,362880),(10,3628800),(11,39916800)]
 org-babel-haskell-eoe
 let fac n = product [1..n]
 [(x,fac x) | x - [0..11]]
 org-babel-haskell-eoe
 [(0,1),(1,1),(2,2),(3,6),(4,24),(5,120),(6,720),(7,5040),(8,40320),(9,362880),(10,3628800),(11,39916800)]
 org-babel-haskell-eoe
 
 
 My *haskell* buffer looks different then yours.  Namely I have
 Prelude where as you just have .  I don't know if this is
 significant.  Maybe you've customized your ghci prompts in such a way
 that the comint functions can no longer recognize where output begins?
 
 ,
 | GHCi, version 7.6.3: http://www.haskell.org/ghc/  :? for help
 | Loading package ghc-prim ... let fac n = product [1..n]
 | [(x,fac x) | x - [0..11]]
 | org-babel-haskell-eoe
 | linking ... done.
 | Loading package integer-gmp ... linking ... done.
 | Loading package base ... linking ... done.
 | Prelude Prelude 
 [(0,1),(1,1),(2,2),(3,6),(4,24),(5,120),(6,720),(7,5040),(8,40320),(9,362880),(10,3628800),(11,39916800)]
 | Prelude org-babel-haskell-eoe
 | Prelude let fac n = product [1..n]
 | [(x,fac x) | x - [0..11]]
 | org-babel-haskell-eoe
 | Prelude 
 [(0,1),(1,1),(2,2),(3,6),(4,24),(5,120),(6,720),(7,5040),(8,40320),(9,362880),(10,3628800),(11,39916800)]
 | Prelude org-babel-haskell-eoe
 | Prelude 
 `
 
 I'm not sure what else this could be.  One option would be to instrument
 `org-babel-execute:haskell' or `org-babel-comint-with-output' with
 edebug, and then step through evaluation to see if you can pinpoint
 where the problem lies.
 
 Hope this helps,
 
 -- 
 Eric Schulte
 http://cs.unm.edu/~eschulte




Re: [O] Bug: Babel Haskell mode [8.0.3 (8.0.3-30-g56b864-elpa @ /Users/ix/.emacs.d/elpa/org-20130610/)]

2013-06-11 Thread Simon Beaumont
Well that's really odd: I modded the paths in init.el and did the following:

emacs -Q -l init.el foo.org

When I eval'ed the code block in foo.org (twice) I still get message: Code 
block returned no value
I've attached the inferior haskell buffer and all relevant files.


init.el
Description: Binary data


foo.org
Description: Binary data
GHClet fac n = product [1..n]
[(x,fac x) | x - [0..11]]
org-babel-haskell-eoe
i, version 7.6.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
 [(0,1),(1,1),(2,2),(3,6),(4,24),(5,120),(6,720),(7,5040),(8,40320),(9,362880),(10,3628800),(11,39916800)]
 org-babel-haskell-eoe
 let fac n = product [1..n]
[(x,fac x) | x - [0..11]]
org-babel-haskell-eoe
 [(0,1),(1,1),(2,2),(3,6),(4,24),(5,120),(6,720),(7,5040),(8,40320),(9,362880),(10,3628800),(11,39916800)]
 org-babel-haskell-eoe
 
--
Looks like we are on the same versions of emacs and ghc:

ix@psi(0) [re](4843) emacs --version
GNU Emacs 24.3.1
Copyright (C) 2013 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

ix@psi(0) [re](4844) ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.3

Org-mode version 8.0.3 (8.0.3-30-g56b864-elpa @ 
/Users/ix/.emacs.d/elpa/org-20130610/)


As far as I can tell the raw data from inferior-haskell mode is returned but 
the parsing returns null…

the raw value from:
(raw (org-babel-comint-with-output
  (session org-babel-haskell-eoe t full-body)
(insert (org-babel-trim full-body))
(comint-send-input nil t)
(insert org-babel-haskell-eoe)
(comint-send-input nil t)))
___
 ( 
 [(0,1),(1,1),(2,2),(3,6),(4,24),(5,120),(6,720),(7,5040),(8,40320),(9,362880),(10,3628800),(11,39916800)]
   
 \org-babel-haskell-eoe\ 

 )
-
 (results (mapcar
   #'org-babel-haskell-read-string
   (cdr (member org-babel-haskell-eoe
(reverse (mapcar #'org-babel-trim raw)))

but results is nil

__
I might be worth noting I am running on OS X not Linux but the raw data looks 
reasonable to me…

Simon Beaumont

On 10 Jun 2013, at 23:53, Eric Schulte schulte.e...@gmail.com wrote:

 Simon Beaumont si...@datalligator.com writes:
 
 Whenever I try and evaluate the Haskell code block I get:
 Code block returned no value.
 
 #+begin_src haskell :results value
  let fac n = product [1..n]
  [(x,fac x) | x - [0..11]]
 #+end_src
 
 #+results:
 
 
 I can't reproduce this problem.  With a minimal emacs config started
 with -Q, and loading the attached init.el file (you'll have to update
 the paths to work with your system).
 
 init.el
 I'm able to execute the following Org-mode file returning a table of
 results as expected (although I have to execute it twice, presumably to
 clear out some cruft at the beginning of the haskell session).
 
 #+begin_src haskell
  let fac n = product [1..n]
  [(x,fac x) | x - [0..11]]
 #+end_src
 
 I'm using
 
$ emacs --version
GNU Emacs 24.3.1
Copyright (C) 2013 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
 
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.3
 
Org-mode version 8.0.3 (release_8.0.3-215-g8e1e6f @ 
 /home/eschulte/src/org-mode/lisp/)
 
 -- 
 Eric Schulte
 http://cs.unm.edu/~eschulte



[O] Bug: Babel Haskell mode [8.0.3 (8.0.3-30-g56b864-elpa @ /Users/ix/.emacs.d/elpa/org-20130610/)]

2013-06-10 Thread Simon Beaumont

Whenever I try and evaluate the Haskell code block I get:
Code block returned no value.

#+begin_src haskell :results value
  let fac n = product [1..n]
  [(x,fac x) | x - [0..11]]
#+end_src

#+results:


I am using ghci as my haskell-program
The Haskell source is correctly executed in the *haskell* inferior mode.

 let fac n = product [1..n]
[(x,fac x) | x - [0..11]]
org-babel-haskell-eoe
 [(0,1),(1,1),(2,2),(3,6),(4,24),(5,120),(6,720),(7,5040),(8,40320),(9,362880),(10,3628800),(11,39916800)]
 org-babel-haskell-eoe
 

The raw binding receives appropriate data below but the parse is
always null
 
...
(defun org-babel-execute:haskell (body params)
  Execute a block of Haskell code.
  (let* ((session (cdr (assoc :session params)))
 (vars (mapcar #'cdr (org-babel-get-header params :var)))
 (result-type (cdr (assoc :result-type params)))
 (full-body (org-babel-expand-body:generic
 body params
 (org-babel-variable-assignments:haskell params)))
 (session (org-babel-haskell-initiate-session session params))
 ;; ++ we get something like the above here
 (raw (org-babel-comint-with-output
  (session org-babel-haskell-eoe t full-body)
(insert (org-babel-trim full-body))
(comint-send-input nil t)
(insert org-babel-haskell-eoe)
(comint-send-input nil t)))
 ;; ++ this is null
 (results (mapcar
   #'org-babel-haskell-read-string
   (cdr (member org-babel-haskell-eoe
(reverse (mapcar #'org-babel-trim raw)))
...

What am I doing wrong?
Thanks for any assistance to fix this - what should we be getting in results?

_
Emacs  : GNU Emacs 24.3.1 (x86_64-apple-darwin12.3.0)
 of 2013-05-04 on psi
Package: Org-mode version 8.0.3 (8.0.3-30-g56b864-elpa @ 
/Users/ix/.emacs.d/elpa/org-20130610/)

current state:
==
(setq
 org-tab-first-hook '(org-hide-block-toggle-maybe 
org-src-native-tab-command-maybe org-babel-hide-result-toggle-maybe
  org-babel-header-arg-expand)
 org-speed-command-hook '(org-speed-command-default-hook 
org-babel-speed-command-hook)
 org-occur-hook '(org-first-headline-recenter)
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-confirm-shell-link-function 'yes-or-no-p
 org-after-todo-state-change-hook '(org-clock-out-if-current)
 org-src-mode-hook '(org-src-babel-configure-edit-buffer 
org-src-mode-configure-edit-buffer)
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-babel-pre-tangle-hook '(save-buffer)
 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-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers 
org-cycle-hide-inline-tasks
  org-cycle-show-empty-lines 
org-optimize-window-after-visibility-change)
 org-babel-tangle-lang-exts '((haskell . hs) (python . py) 
(emacs-lisp . el))
 org-confirm-elisp-link-function 'yes-or-no-p
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-babel-load-languages '((python . t) (R . t) (haskell . t) (emacs-lisp . t))
 org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
 )