[Haskell-cafe] Haskell-mode 2.4

Johan Tibell johan.tibell at gmail.com
Thu Jan 10 22:45:45 EST 2008


On Jan 11, 2008 12:05 AM, Stefan Monnier <monnier at iro.umontreal.ca> wrote:
>
> >> First of all, thanks. My Aqua Emacs (on OS X Leopard) hangs when I
> >> send a command like C-c C-l or C-c C-t to the interpreter (I can quit
> >> the command using C-g) . Starting the interpreter and using :l from
> >> inside it works fine. This is using GHC 6.8 (and I think I also tried
> >> 6.6.) What could be the problem?
> >>
> >> I also tried to eval this but it didn't make a difference:
> >>
> >> (setq inferior-haskell-find-project-root nil)
>
> > It looks like this is a problem with 6.8.2 as haskell-mode-2.3 has the
> > same problem? Seems like the commands being sent to the haskell
> > process never reaches it.
>
> Try can you try to look into the nature of the hang?
> Is Emacs completely frozen?  Does C-g get you back to something usable?
> If so, can you set Options => Enter Debugger on Quit, then reproduce the
> problem than hit C-g and show me the backtrace?
> If not, can you run Emacs under a debugger and give me a backtrace of
> when Emacs is frozen?

Emacs is completely frozen until I press C-g and then it goes back to
normal (without loading the file). Here's the back trace:

Debugger entered--Lisp error: (quit)
  accept-process-output(#<process haskell>)
  (and (not (re-search-forward comint-prompt-regexp nil t))
(accept-process-output proc))
  (progn (goto-char comint-last-input-end) (and (not ...)
(accept-process-output proc)))
  (while (progn (goto-char comint-last-input-end) (and ... ...)))
  (save-current-buffer (set-buffer (process-buffer proc)) (while
(progn ... ...)))
  (with-current-buffer (process-buffer proc) (while (progn ... ...)))
  inferior-haskell-wait-for-prompt(#<process haskell>)
  (save-current-buffer (set-buffer (process-buffer proc))
(inferior-haskell-wait-for-prompt proc) (goto-char (process-mark
proc)) (insert-before-markers str) (move-marker comint-last-input-end
(point)) (comint-send-string proc str))
  (with-current-buffer (process-buffer proc)
(inferior-haskell-wait-for-prompt proc) (goto-char (process-mark
proc)) (insert-before-markers str) (move-marker comint-last-input-end
(point)) (comint-send-string proc str))
  inferior-haskell-send-command(#<process haskell> ":cd
/Users/tibell/src/hyena/")
  (if (equal default-directory root) nil (setq default-directory root)
(inferior-haskell-send-command proc (concat ":cd "
default-directory)))
  (unless (equal default-directory root) (setq default-directory root)
(inferior-haskell-send-command proc (concat ":cd "
default-directory)))
  (progn (unless (equal default-directory root) (setq
default-directory root) (inferior-haskell-send-command proc ...))
(setq file (file-relative-name file)))
  (if (and inferior-haskell-find-project-root (setq root ...)) (progn
(unless ... ... ...) (setq file ...)))
  (when (and inferior-haskell-find-project-root (setq root ...))
(unless (equal default-directory root) (setq default-directory root)
(inferior-haskell-send-command proc ...)) (setq file
(file-relative-name file)))
  (let ((parsing-end ...) root) (when (and
inferior-haskell-find-project-root ...) (unless ... ... ...) (setq
file ...)) (inferior-haskell-send-command proc (if reload ":reload"
...)) (if (boundp ...) (if ... ... ...)))
  (save-current-buffer (set-buffer (process-buffer proc))
(compilation-forget-errors) (let (... root) (when ... ... ...)
(inferior-haskell-send-command proc ...) (if ... ...))
(with-selected-window (display-buffer ...) (goto-char ...)) (when
inferior-haskell-wait-and-jump (inferior-haskell-wait-for-prompt proc)
(ignore-errors ...)))
  (with-current-buffer (process-buffer proc)
(compilation-forget-errors) (let (... root) (when ... ... ...)
(inferior-haskell-send-command proc ...) (if ... ...))
(with-selected-window (display-buffer ...) (goto-char ...)) (when
inferior-haskell-wait-and-jump (inferior-haskell-wait-for-prompt proc)
(ignore-errors ...)))
  (let ((buf ...) (file buffer-file-name) (proc ...))
(with-current-buffer (process-buffer proc) (compilation-forget-errors)
(let ... ... ... ...) (with-selected-window ... ...) (when
inferior-haskell-wait-and-jump ... ...)))
  inferior-haskell-load-file(nil)
  call-interactively(inferior-haskell-load-file)


More information about the Haskell-Cafe mailing list