haskell / haskell-mode

Emacs mode for Haskell
http://haskell.github.io/haskell-mode/
GNU General Public License v3.0
1.31k stars 339 forks source link

Problem with haskell process load file on Windows10 #1503

Open tonyfloatersu opened 7 years ago

tonyfloatersu commented 7 years ago

Platform Information:

The problem is weird, when I just want to use haskell-process-load-file for a small piece of haskell code like this:

module CalcInptType ( Expr (..), Ops (..), Parse ) where

data Expr = Lit { value    :: Int }
          | Var { variable :: String }
          | Op { operate   :: Ops
               , express1  :: Expr
               , express2  :: Expr }
          deriving (Eq, Show)

data Ops = Add | Sub | Mul | Div | Mod | Def | Frc
         deriving (Eq, Show)

type Parse a b = [a] -> [(b, [a])]

Then here goes the error in the Message buffer.

error in process sentinel: haskell-process-prompt-restart: Wrong type argument: stringp, nil
error in process sentinel: Wrong type argument: stringp, nil

This kind of problem only happen on Windows, I checked in Linux and everything goes smoothly.

Then I use the debug-on-error to check, here goes the Backtrace debug buffer, a large chunk of message...

Debugger entered--Lisp error: (wrong-type-argument stringp nil)

  string-match("You need to re-run the 'configure' command." nil)

  haskell-process-prompt-restart(((name . "haskell") (command-queue [cl-struct-haskell-command (((name . "haskell") (next-error-region #<marker at 1 in *haskell*> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (process (name . "haskell") #1 (inferior-process . #<process haskell>) (is-restarting) (current-command . [cl-struct-haskell-command #0 #[257 "\301\302\303\304\305#\"\210\301\306\"\210\301\307\310\"\"\207" [haskell-interactive-prompt2 haskell-process-send-string mapconcat identity ... "\n" ":set prompt \"\4\"" format ":set prompt2 \"%s\""] 7 "\n\n(fn PROCESS)"] #[514 "\300\301\"\205\302\303\"\304\305!\306\307\310\311\312\313!\314\"\315\316%#\210\317\305!\320\321\"\"\262\207" [haskell-process-consume "^*** WARNING: \(.+\) is writable by someone else, IGNORING!$" match-string 1 haskell-session-modify haskell-process-session ignored-files make-byte-code 257 "\301\300B\302\303#\207" vconcat vector [cl-remove-duplicates :test string=] 5 "\n\n(fn FILES)" haskell-interactive-mode-compile-warning format "GHCi is ignoring: %s (run M-x haskell-process-unignore)"] 12 "\n\n(fn PROCESS BUFFER)"] #[514 "\303\304!\305G!8  \205\306P\"\210r\307 q\210\nb)\207" [haskell-process-greetings haskell-process-show-debug-tips haskell-interactive-mode-prompt-start haskell-interactive-mode-echo haskell-process-session random "\nIf I break, you can:\n  1. Restart:           M-x haskell-process-restart\n  2. Configure logging: C-h v haskell-process-log (useful for debugging)\n  3. General config:    M-x customize-mode\n  4. Hide these tips:   C-h v haskell-process-show-debug-tips" haskell-interactive-buffer] 6 "\n\n(fn PROCESS _)"]]) (suggested-imported) (sent-stdin) (evaluating) (session (name . "haskell") (next-error-region #<marker at 1 in *haskell> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") #5))) #0 "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") #[257 "\300A@\301\302AA@\"\"\207" [haskell-process-send-string format ":cd %s"] 6 "\n\n(fn STATE)"] nil #[514 "\300@AA@\"\210\301@\302\303AA@\"\"\207" [haskell-session-set-current-dir haskell-interactive-mode-echo format "Changed directory: %s"] 7 "\n\n(fn STATE _)"]] [cl-struct-haskell-command (((name . "haskell") (next-error-region #<marker at 1 in *haskell*> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (process (name . "haskell") #1 (inferior-process . #<process haskell>) (is-restarting) (current-command . [cl-struct-haskell-command #0 #[257 "\301\302\303\304\305#\"\210\301\306\"\210\301\307\310\"\"\207" [haskell-interactive-prompt2 haskell-process-send-string mapconcat identity ... "\n" ":set prompt \"\4\"" format ":set prompt2 \"%s\""] 7 "\n\n(fn PROCESS)"] #[514 "\300\301\"\205\302\303\"\304\305!\306\307\310\311\312\313!\314\"\315\316%#\210\317\305!\320\321\"\"\262\207" [haskell-process-consume "^*** WARNING: \(.+\) is writable by someone else, IGNORING!$" match-string 1 haskell-session-modify haskell-process-session ignored-files make-byte-code 257 "\301\300B\302\303#\207" vconcat vector [cl-remove-duplicates :test string=] 5 "\n\n(fn FILES)" haskell-interactive-mode-compile-warning format "GHCi is ignoring: %s (run M-x haskell-process-unignore)"] 12 "\n\n(fn PROCESS BUFFER)"] #[514 "\303\304!\305G!8  \205\306P\"\210r\307 q\210\nb)\207" [haskell-process-greetings haskell-process-show-debug-tips haskell-interactive-mode-prompt-start haskell-interactive-mode-echo haskell-process-session random "\nIf I break, you can:\n  1. Restart:           M-x haskell-process-restart\n  2. Configure logging: C-h v haskell-process-log (useful for debugging)\n  3. General config:    M-x customize-mode\n  4. Hide these tips:   C-h v haskell-process-show-debug-tips" haskell-interactive-buffer] 6 "\n\n(fn PROCESS _)"]]) (suggested-imported) (sent-stdin) (evaluating) (session (name . "haskell") (next-error-region #<marker at 1 in *haskell> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") #5))) #0 "load \"g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/CalcInpt.hs\"" nil #<buffer CalcInpt.hs>) #[257 "\300A@\301\302AA@\"\"\207" [haskell-process-send-string format ":%s"] 6 "\n\n(fn STATE)"] #[514 "\300A@\301#\207" [haskell-process-live-build nil] 6 "\n\n(fn STATE BUFFER)"] #[514 "\300@A@AAA@AAAA@%\207" [haskell-process-load-complete] 8 "\n\n(fn STATE RESPONSE)"]]) (inferior-process . #<process haskell>) (is-restarting) (current-command . [cl-struct-haskell-command #0 #[257 "\301\302\303\304\305#\"\210\301\306\"\210\301\307\310\"\"\207" [haskell-interactive-prompt2 haskell-process-send-string mapconcat identity ("Prelude.putStrLn \"\"" ":set -v1" ":set +c") "\n" ":set prompt \"\4\"" format ":set prompt2 \"%s\""] 7 "\n\n(fn PROCESS)"] #[514 "\300\301\"\205\302\303\"\304\305!\306\307\310\311\312\313!\314\"\315\316%#\210\317\305!\320\321\"\"\262\207" [haskell-process-consume "^*** WARNING: \(.+\) is writable by someone else, IGNORING!$" match-string 1 haskell-session-modify haskell-process-session ignored-files make-byte-code 257 "\301\300B\302\303#\207" vconcat vector [cl-remove-duplicates :test string=] 5 "\n\n(fn FILES)" haskell-interactive-mode-compile-warning format "GHCi is ignoring: %s (run M-x haskell-process-unignore)"] 12 "\n\n(fn PROCESS BUFFER)"] #[514 "\303\304!\305G!8  \205\306P\"\210r\307 q\210\nb)\207" [haskell-process-greetings haskell-process-show-debug-tips haskell-interactive-mode-prompt-start haskell-interactive-mode-echo haskell-process-session random "\nIf I break, you can:\n  1. Restart:           M-x haskell-process-restart\n  2. Configure logging: C-h v haskell-process-log (useful for debugging)\n  3. General config:    M-x customize-mode\n  4. Hide these tips:   C-h v haskell-process-show-debug-tips" haskell-interactive-buffer] 6 "\n\n(fn PROCESS _)"]]) (suggested-imported) (sent-stdin) (evaluating) (session (name . "haskell") (next-error-region #<marker at 1 in *haskell> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (process (name . "haskell") (command-queue [cl-struct-haskell-command (((name . "haskell") (next-error-region #<marker at 1 in *haskell*> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") #2) #0 "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") #[257 "\300A@\301\302AA@\"\"\207" [haskell-process-send-string format ":cd %s"] 6 "\n\n(fn STATE)"] nil #[514 "\300@AA@\"\210\301@\302\303AA@\"\"\207" [haskell-session-set-current-dir haskell-interactive-mode-echo format "Changed directory: %s"] 7 "\n\n(fn STATE _)"]] [cl-struct-haskell-command (((name . "haskell") (next-error-region #<marker at 1 in *haskell*> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") #2) #0 "load \"g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/CalcInpt.hs\"" nil #<buffer CalcInpt.hs>) #[257 "\300A@\301\302AA@\"\"\207" [haskell-process-send-string format ":%s"] 6 "\n\n(fn STATE)"] #[514 "\300A@\301#\207" [haskell-process-live-build nil] 6 "\n\n(fn STATE BUFFER)"] #[514 "\300@A@AAA@AAAA@%\207" [haskell-process-load-complete] 8 "\n\n(fn STATE RESPONSE)"]]) (inferior-process . #<process haskell>) (is-restarting) (current-command . [cl-struct-haskell-command #0 #[257 "\301\302\303\304\305#\"\210\301\306\"\210\301\307\310\"\"\207" [haskell-interactive-prompt2 haskell-process-send-string mapconcat identity ("Prelude.putStrLn \"\"" ":set -v1" ":set +c") "\n" ":set prompt \"\4\"" format ":set prompt2 \"%s\""] 7 "\n\n(fn PROCESS)"] #[514 "\300\301\"\205*\302\303\"\304\305!\306\307\310\311\312\313!\314\"\315\316%#\210\317\305!\320\321\"\"\262\207" [haskell-process-consume "^*** WARNING: \(.+\) is writable by someone else, IGNORING!$" match-string 1 haskell-session-modify haskell-process-session ignored-files make-byte-code 257 "\301\300B\302\303#\207" vconcat vector [cl-remove-duplicates :test string=] 5 "\n\n(fn FILES)" haskell-interactive-mode-compile-warning format "GHCi is ignoring: %s (run M-x haskell-process-unignore)"] 12 "\n\n(fn PROCESS BUFFER)"] #[514 "\303\304!\305G!8 \205\306P\"\210r\307 q\210\nb)\207" [haskell-process-greetings haskell-process-show-debug-tips haskell-interactive-mode-prompt-start haskell-interactive-mode-echo haskell-process-session random "\nIf I break, you can:\n  1. Restart:           M-x haskell-process-restart\n  2. Configure logging: C-h v haskell-process-log (useful for debugging)\n  3. General config:    M-x customize-mode\n  4. Hide these tips:   C-h v haskell-process-show-debug-tips" haskell-interactive-buffer] 6 "\n\n(fn PROCESS _)"]]) (suggested-imported) (sent-stdin) (evaluating) #1))))

  run-hook-with-args(haskell-process-prompt-restart ((name . "haskell") (command-queue [cl-struct-haskell-command (((name . "haskell") (next-error-region #<marker at 1 in *haskell*> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (process (name . "haskell") #1 (inferior-process . #<process haskell>) (is-restarting) (current-command . [cl-struct-haskell-command #0 #[257 "\301\302\303\304\305#\"\210\301\306\"\210\301\307\310\"\"\207" [haskell-interactive-prompt2 haskell-process-send-string mapconcat identity ... "\n" ":set prompt \"\4\"" format ":set prompt2 \"%s\""] 7 "\n\n(fn PROCESS)"] #[514 "\300\301\"\205\302\303\"\304\305!\306\307\310\311\312\313!\314\"\315\316%#\210\317\305!\320\321\"\"\262\207" [haskell-process-consume "^*** WARNING: \(.+\) is writable by someone else, IGNORING!$" match-string 1 haskell-session-modify haskell-process-session ignored-files make-byte-code 257 "\301\300B\302\303#\207" vconcat vector [cl-remove-duplicates :test string=] 5 "\n\n(fn FILES)" haskell-interactive-mode-compile-warning format "GHCi is ignoring: %s (run M-x haskell-process-unignore)"] 12 "\n\n(fn PROCESS BUFFER)"] #[514 "\303\304!\305G!8   \205\306P\"\210r\307 q\210\nb)\207" [haskell-process-greetings haskell-process-show-debug-tips haskell-interactive-mode-prompt-start haskell-interactive-mode-echo haskell-process-session random "\nIf I break, you can:\n  1. Restart:           M-x haskell-process-restart\n  2. Configure logging: C-h v haskell-process-log (useful for debugging)\n  3. General config:    M-x customize-mode\n  4. Hide these tips:   C-h v haskell-process-show-debug-tips" haskell-interactive-buffer] 6 "\n\n(fn PROCESS _)"]]) (suggested-imported) (sent-stdin) (evaluating) (session (name . "haskell") (next-error-region #<marker at 1 in *haskell> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") #5))) #0 "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") #[257 "\300A@\301\302AA@\"\"\207" [haskell-process-send-string format ":cd %s"] 6 "\n\n(fn STATE)"] nil #[514 "\300@AA@\"\210\301@\302\303AA@\"\"\207" [haskell-session-set-current-dir haskell-interactive-mode-echo format "Changed directory: %s"] 7 "\n\n(fn STATE _)"]] [cl-struct-haskell-command (((name . "haskell") (next-error-region #<marker at 1 in *haskell*> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (process (name . "haskell") #1 (inferior-process . #<process haskell>) (is-restarting) (current-command . [cl-struct-haskell-command #0 #[257 "\301\302\303\304\305#\"\210\301\306\"\210\301\307\310\"\"\207" [haskell-interactive-prompt2 haskell-process-send-string mapconcat identity ... "\n" ":set prompt \"\4\"" format ":set prompt2 \"%s\""] 7 "\n\n(fn PROCESS)"] #[514 "\300\301\"\205\302\303\"\304\305!\306\307\310\311\312\313!\314\"\315\316%#\210\317\305!\320\321\"\"\262\207" [haskell-process-consume "^*** WARNING: \(.+\) is writable by someone else, IGNORING!$" match-string 1 haskell-session-modify haskell-process-session ignored-files make-byte-code 257 "\301\300B\302\303#\207" vconcat vector [cl-remove-duplicates :test string=] 5 "\n\n(fn FILES)" haskell-interactive-mode-compile-warning format "GHCi is ignoring: %s (run M-x haskell-process-unignore)"] 12 "\n\n(fn PROCESS BUFFER)"] #[514 "\303\304!\305G!8  \205\306P\"\210r\307 q\210\nb)\207" [haskell-process-greetings haskell-process-show-debug-tips haskell-interactive-mode-prompt-start haskell-interactive-mode-echo haskell-process-session random "\nIf I break, you can:\n  1. Restart:           M-x haskell-process-restart\n  2. Configure logging: C-h v haskell-process-log (useful for debugging)\n  3. General config:    M-x customize-mode\n  4. Hide these tips:   C-h v haskell-process-show-debug-tips" haskell-interactive-buffer] 6 "\n\n(fn PROCESS _)"]]) (suggested-imported) (sent-stdin) (evaluating) (session (name . "haskell") (next-error-region #<marker at 1 in *haskell> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") #5))) #0 "load \"g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/CalcInpt.hs\"" nil #<buffer CalcInpt.hs>) #[257 "\300A@\301\302AA@\"\"\207" [haskell-process-send-string format ":%s"] 6 "\n\n(fn STATE)"] #[514 "\300A@\301#\207" [haskell-process-live-build nil] 6 "\n\n(fn STATE BUFFER)"] #[514 "\300@A@AAA@AAAA@%\207" [haskell-process-load-complete] 8 "\n\n(fn STATE RESPONSE)"]]) (inferior-process . #<process haskell>) (is-restarting) (current-command . [cl-struct-haskell-command #0 #[257 "\301\302\303\304\305#\"\210\301\306\"\210\301\307\310\"\"\207" [haskell-interactive-prompt2 haskell-process-send-string mapconcat identity ("Prelude.putStrLn \"\"" ":set -v1" ":set +c") "\n" ":set prompt \"\4\"" format ":set prompt2 \"%s\""] 7 "\n\n(fn PROCESS)"] #[514 "\300\301\"\205\302\303\"\304\305!\306\307\310\311\312\313!\314\"\315\316%#\210\317\305!\320\321\"\"\262\207" [haskell-process-consume "^*** WARNING: \(.+\) is writable by someone else, IGNORING!$" match-string 1 haskell-session-modify haskell-process-session ignored-files make-byte-code 257 "\301\300B\302\303#\207" vconcat vector [cl-remove-duplicates :test string=] 5 "\n\n(fn FILES)" haskell-interactive-mode-compile-warning format "GHCi is ignoring: %s (run M-x haskell-process-unignore)"] 12 "\n\n(fn PROCESS BUFFER)"] #[514 "\303\304!\305G!8  \205\306P\"\210r\307 q\210\nb)\207" [haskell-process-greetings haskell-process-show-debug-tips haskell-interactive-mode-prompt-start haskell-interactive-mode-echo haskell-process-session random "\nIf I break, you can:\n  1. Restart:           M-x haskell-process-restart\n  2. Configure logging: C-h v haskell-process-log (useful for debugging)\n  3. General config:    M-x customize-mode\n  4. Hide these tips:   C-h v haskell-process-show-debug-tips" haskell-interactive-buffer] 6 "\n\n(fn PROCESS _)"]]) (suggested-imported) (sent-stdin) (evaluating) (session (name . "haskell") (next-error-region #<marker at 1 in *haskell> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (process (name . "haskell") (command-queue [cl-struct-haskell-command (((name . "haskell") (next-error-region #<marker at 1 in *haskell*> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") #2) #0 "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") #[257 "\300A@\301\302AA@\"\"\207" [haskell-process-send-string format ":cd %s"] 6 "\n\n(fn STATE)"] nil #[514 "\300@AA@\"\210\301@\302\303AA@\"\"\207" [haskell-session-set-current-dir haskell-interactive-mode-echo format "Changed directory: %s"] 7 "\n\n(fn STATE _)"]] [cl-struct-haskell-command (((name . "haskell") (next-error-region #<marker at 1 in *haskell*> . #<marker (moves after insertion) at 1 in *haskell*>) (next-error-locus) (interactive-buffer . #<buffer *haskell*>) (current-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") (cabal-checksum) (cabal-dir . "g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/") #2) #0 "load \"g:/original_ddisk/Programming/haskell/solution-haskell-craft-of-FP/CalcInpt.hs\"" nil #<buffer CalcInpt.hs>) #[257 "\300A@\301\302AA@\"\"\207" [haskell-process-send-string format ":%s"] 6 "\n\n(fn STATE)"] #[514 "\300A@\301#\207" [haskell-process-live-build nil] 6 "\n\n(fn STATE BUFFER)"] #[514 "\300@A@AAA@AAAA@%\207" [haskell-process-load-complete] 8 "\n\n(fn STATE RESPONSE)"]]) (inferior-process . #<process haskell>) (is-restarting) (current-command . [cl-struct-haskell-command #0 #[257 "\301\302\303\304\305#\"\210\301\306\"\210\301\307\310\"\"\207" [haskell-interactive-prompt2 haskell-process-send-string mapconcat identity ("Prelude.putStrLn \"\"" ":set -v1" ":set +c") "\n" ":set prompt \"\4\"" format ":set prompt2 \"%s\""] 7 "\n\n(fn PROCESS)"] #[514 "\300\301\"\205*\302\303\"\304\305!\306\307\310\311\312\313!\314\"\315\316%#\210\317\305!\320\321\"\"\262\207" [haskell-process-consume "^*** WARNING: \(.+\) is writable by someone else, IGNORING!$" match-string 1 haskell-session-modify haskell-process-session ignored-files make-byte-code 257 "\301\300B\302\303#\207" vconcat vector [cl-remove-duplicates :test string=] 5 "\n\n(fn FILES)" haskell-interactive-mode-compile-warning format "GHCi is ignoring: %s (run M-x haskell-process-unignore)"] 12 "\n\n(fn PROCESS BUFFER)"] #[514 "\303\304!\305G!8 \205\306P\"\210r\307 q\210\nb)\207" [haskell-process-greetings haskell-process-show-debug-tips haskell-interactive-mode-prompt-start haskell-interactive-mode-echo haskell-process-session random "\nIf I break, you can:\n  1. Restart:           M-x haskell-process-restart\n  2. Configure logging: C-h v haskell-process-log (useful for debugging)\n  3. General config:    M-x customize-mode\n  4. Hide these tips:   C-h v haskell-process-show-debug-tips" haskell-interactive-buffer] 6 "\n\n(fn PROCESS _)"]]) (suggested-imported) (sent-stdin) (evaluating) #1))))

  haskell-process-sentinel(#<process haskell> "exited abnormally with code 66\n")

Thank you for your haskell-mode, I like it very much, I hope I can help here. (Sorry for my lame English since I am not native speaker... This is also my first ISSUE submitted. : ) )

tonyfloatersu commented 7 years ago

I guess this is something from different operation system, or different haskell-platform on different system...

tonyfloatersu commented 7 years ago

I checked again, with same haskell platform and same emacs configuration on my mom's computer with windows 10, it worked. I guess it is caused by the windows 10 update, maybe it is quite hard to hack.

tonyfloatersu commented 7 years ago

My current windows version is 10.1.15063 and it just does not work. My mom's windows version is 10.1.14393 and it works.

tonyfloatersu commented 7 years ago

Roll back to version 10.1.14393, then everything get back to work again. Weird, I leave these comments here, in case someone may need it.

gracjan commented 7 years ago

Did you mean to reopen it?

tonyfloatersu commented 7 years ago

Eh...yeah, I think we should reopen it, based on some reasons:

So the problem still exists, unfortunately. '_>' (Sorry for bothering again, I have to apologize for my closing this issue without careful consideration.)

zelinskiy commented 7 years ago

Having the same issue on 10.1.15063 Haskell platform version is 8.0.1

ryukinix commented 7 years ago

My emacs freezes on open any .hs file and calling haskell-mode. BTW, run-haskell exits too with error 66.

vasanthaganeshk commented 7 years ago

@ryukinix run-haskell uses inferior-haskell-mode. That mode is deprecated.

ryukinix commented 7 years ago

Thanks for the information, @vasanthaganeshk! But how I should call the ghci from emacs?

vasanthaganeshk commented 7 years ago

@ryukinix, M-x haskell-process-load-file or C-c C-l, to start the repl. By the way, haskell-interactive-mode is a little buggy and I'm working on improving it (in a fork).

Try haskell-interactive-switch.

ryukinix commented 7 years ago

Thanks for the information! Another tool I'm using now to complement haskell-mode is intero, works very well on windows -- the REPL works without any bugs until now. Was that way that I did can continue development projects in haskell on my Windows.

Anyway thanks for the great tool!