syl20bnr / spacemacs

A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs *and* Vim!
http://spacemacs.org
GNU General Public License v3.0
23.68k stars 4.89k forks source link

Freeze on opening haskell file #10588

Closed revmischa closed 6 years ago

revmischa commented 6 years ago

System Info :computer:

screen shot 2018-04-13 at 20 09 10

Emacs freezes up

revmischa commented 6 years ago

Backtrace:

Debugger entered--Lisp error: (quit)
  call-process("/usr/local/bin/stack" nil #<buffer  *temp*> nil "path" "--project-root")
  apply(call-process "/usr/local/bin/stack" nil #<buffer  *temp*> nil ("path" "--project-root"))
  process-lines("/usr/local/bin/stack" "path" "--project-root")
  flycheck-haskell--find-default-directory(haskell-stack-ghc)
  flycheck-compute-working-directory(haskell-stack-ghc)
  #f(compiled-function () #<bytecode 0x443c6b9d>)()
  flycheck-may-enable-checker(haskell-stack-ghc)
  flycheck-may-use-checker(haskell-stack-ghc)
  #f(compiled-function (elt) #<bytecode 0x472c9b4d>)(haskell-stack-ghc)
  mapc(#f(compiled-function (elt) #<bytecode 0x472c9b4d>) (ada-gnat asciidoctor asciidoc c/c++-clang c/c++-gcc c/c++-cppcheck cfengine chef-foodcritic coffee coffee-coffeelint coq css-csslint css-stylelint cwl d-dmd dockerfile-hadolint emacs-lisp emacs-lisp-checkdoc erlang-rebar3 erlang eruby-erubis fortran-gfortran go-gofmt go-golint go-vet go-build go-test go-errcheck go-unconvert go-megacheck groovy haml handlebars haskell-stack-ghc haskell-ghc haskell-hlint html-tidy javascript-eslint javascript-jshint javascript-standard json-jsonlint json-python-json jsonnet less less-stylelint llvm-llc lua-luacheck lua perl perl-perlcritic php php-phpmd php-phpcs processing proselint protobuf-protoc pug puppet-parser puppet-lint python-flake8 python-pylint python-pycompile r-lintr racket rpm-rpmlint markdown-markdownlint-cli markdown-mdl nix rst-sphinx rst ruby-rubocop ruby-reek ruby-rubylint ruby ruby-jruby rust-cargo rust rust-clippy scala scala-scalastyle scheme-chicken scss-lint scss-stylelint sass/scss-sass-lint sass scss sh-bash sh-posix-dash sh-posix-bash sh-zsh sh-shellcheck slim slim-lint sql-sqlint systemd-analyze tcl-nagelfar tex-chktex tex-lacheck texinfo typescript-tslint verilog-verilator vhdl-ghdl xml-xmlstarlet xml-xmllint yaml-jsyaml yaml-ruby))
  seq-do(#f(compiled-function (elt) #<bytecode 0x472c9b4d>) (ada-gnat asciidoctor asciidoc c/c++-clang c/c++-gcc c/c++-cppcheck cfengine chef-foodcritic coffee coffee-coffeelint coq css-csslint css-stylelint cwl d-dmd dockerfile-hadolint emacs-lisp emacs-lisp-checkdoc erlang-rebar3 erlang eruby-erubis fortran-gfortran go-gofmt go-golint go-vet go-build go-test go-errcheck go-unconvert go-megacheck groovy haml handlebars haskell-stack-ghc haskell-ghc haskell-hlint html-tidy javascript-eslint javascript-jshint javascript-standard json-jsonlint json-python-json jsonnet less less-stylelint llvm-llc lua-luacheck lua perl perl-perlcritic php php-phpmd php-phpcs processing proselint protobuf-protoc pug puppet-parser puppet-lint python-flake8 python-pylint python-pycompile r-lintr racket rpm-rpmlint markdown-markdownlint-cli markdown-mdl nix rst-sphinx rst ruby-rubocop ruby-reek ruby-rubylint ruby ruby-jruby rust-cargo rust rust-clippy scala scala-scalastyle scheme-chicken scss-lint scss-stylelint sass/scss-sass-lint sass scss sh-bash sh-posix-dash sh-posix-bash sh-zsh sh-shellcheck slim slim-lint sql-sqlint systemd-analyze tcl-nagelfar tex-chktex tex-lacheck texinfo typescript-tslint verilog-verilator vhdl-ghdl xml-xmlstarlet xml-xmllint yaml-jsyaml yaml-ruby))
  seq-find(flycheck-may-use-checker (ada-gnat asciidoctor asciidoc c/c++-clang c/c++-gcc c/c++-cppcheck cfengine chef-foodcritic coffee coffee-coffeelint coq css-csslint css-stylelint cwl d-dmd dockerfile-hadolint emacs-lisp emacs-lisp-checkdoc erlang-rebar3 erlang eruby-erubis fortran-gfortran go-gofmt go-golint go-vet go-build go-test go-errcheck go-unconvert go-megacheck groovy haml handlebars haskell-stack-ghc haskell-ghc haskell-hlint html-tidy javascript-eslint javascript-jshint javascript-standard json-jsonlint json-python-json jsonnet less less-stylelint llvm-llc lua-luacheck lua perl perl-perlcritic php php-phpmd php-phpcs processing proselint protobuf-protoc pug puppet-parser puppet-lint python-flake8 python-pylint python-pycompile r-lintr racket rpm-rpmlint markdown-markdownlint-cli markdown-mdl nix rst-sphinx rst ruby-rubocop ruby-reek ruby-rubylint ruby ruby-jruby rust-cargo rust rust-clippy scala scala-scalastyle scheme-chicken scss-lint scss-stylelint sass/scss-sass-lint sass scss sh-bash sh-posix-dash sh-posix-bash sh-zsh sh-shellcheck slim slim-lint sql-sqlint systemd-analyze tcl-nagelfar tex-chktex tex-lacheck texinfo typescript-tslint verilog-verilator vhdl-ghdl xml-xmlstarlet xml-xmllint yaml-jsyaml yaml-ruby))
  flycheck-get-checker-for-buffer()
  flycheck-buffer()
  flycheck-buffer-automatically()
  flycheck-perform-deferred-syntax-check()
  #<subr set-window-buffer>(nil #<buffer main.hs> nil)
  ad-Advice-set-window-buffer(#<subr set-window-buffer> nil #<buffer main.hs>)
  apply(ad-Advice-set-window-buffer #<subr set-window-buffer> (nil #<buffer main.hs>))
  set-window-buffer(nil #<buffer main.hs>)
  #f(compiled-function (buffer-or-name &optional norecord force-same-window) "Display buffer BUFFER-OR-NAME in the selected window.\n\nWARNING: This is NOT the way to work on another buffer temporarily\nwithin a Lisp program!  Use `set-buffer' instead.  That avoids\nmessing with the window-buffer correspondences.\n\nIf the selected window cannot display the specified buffer\nbecause it is a minibuffer window or strongly dedicated to\nanother buffer, call `pop-to-buffer' to select the buffer in\nanother window.  In interactive use, if the selected window is\nstrongly dedicated to its buffer, the value of the option\n`switch-to-buffer-in-dedicated-window' specifies how to proceed.\n\nIf called interactively, read the buffer name using `read-buffer'.\nThe variable `confirm-nonexistent-file-or-buffer' determines\nwhether to request confirmation before creating a new buffer.\nSee `read-buffer' for features related to input and completion\nof buffer names.\n\nBUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil.\nIf BUFFER-OR-NAME is a string that does not identify an existing\nbuffer, create a buffer with that name.  If BUFFER-OR-NAME is\nnil, switch to the buffer returned by `other-buffer'.\n\nIf optional argument NORECORD is non-nil, do not put the buffer\nat the front of the buffer list, and do not make the window\ndisplaying it the most recently selected one.\n\nIf optional argument FORCE-SAME-WINDOW is non-nil, the buffer\nmust be displayed in the selected window when called\nnon-interactively; if that is impossible, signal an error rather\nthan calling `pop-to-buffer'.\n\nThe option `switch-to-buffer-preserve-window-point' can be used\nto make the buffer appear at its last position in the selected\nwindow.\n\nReturn the buffer switched to." (interactive #f(compiled-function () #<bytecode 0x472e7d8d>)) #<bytecode 0x40091597>)(#<buffer main.hs> nil nil)
  ad-Advice-switch-to-buffer(#f(compiled-function (buffer-or-name &optional norecord force-same-window) "Display buffer BUFFER-OR-NAME in the selected window.\n\nWARNING: This is NOT the way to work on another buffer temporarily\nwithin a Lisp program!  Use `set-buffer' instead.  That avoids\nmessing with the window-buffer correspondences.\n\nIf the selected window cannot display the specified buffer\nbecause it is a minibuffer window or strongly dedicated to\nanother buffer, call `pop-to-buffer' to select the buffer in\nanother window.  In interactive use, if the selected window is\nstrongly dedicated to its buffer, the value of the option\n`switch-to-buffer-in-dedicated-window' specifies how to proceed.\n\nIf called interactively, read the buffer name using `read-buffer'.\nThe variable `confirm-nonexistent-file-or-buffer' determines\nwhether to request confirmation before creating a new buffer.\nSee `read-buffer' for features related to input and completion\nof buffer names.\n\nBUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil.\nIf BUFFER-OR-NAME is a string that does not identify an existing\nbuffer, create a buffer with that name.  If BUFFER-OR-NAME is\nnil, switch to the buffer returned by `other-buffer'.\n\nIf optional argument NORECORD is non-nil, do not put the buffer\nat the front of the buffer list, and do not make the window\ndisplaying it the most recently selected one.\n\nIf optional argument FORCE-SAME-WINDOW is non-nil, the buffer\nmust be displayed in the selected window when called\nnon-interactively; if that is impossible, signal an error rather\nthan calling `pop-to-buffer'.\n\nThe option `switch-to-buffer-preserve-window-point' can be used\nto make the buffer appear at its last position in the selected\nwindow.\n\nReturn the buffer switched to." (interactive #f(compiled-function () #<bytecode 0x472e7ee9>)) #<bytecode 0x40091597>) #<buffer main.hs> nil nil)
  apply(ad-Advice-switch-to-buffer #f(compiled-function (buffer-or-name &optional norecord force-same-window) "Display buffer BUFFER-OR-NAME in the selected window.\n\nWARNING: This is NOT the way to work on another buffer temporarily\nwithin a Lisp program!  Use `set-buffer' instead.  That avoids\nmessing with the window-buffer correspondences.\n\nIf the selected window cannot display the specified buffer\nbecause it is a minibuffer window or strongly dedicated to\nanother buffer, call `pop-to-buffer' to select the buffer in\nanother window.  In interactive use, if the selected window is\nstrongly dedicated to its buffer, the value of the option\n`switch-to-buffer-in-dedicated-window' specifies how to proceed.\n\nIf called interactively, read the buffer name using `read-buffer'.\nThe variable `confirm-nonexistent-file-or-buffer' determines\nwhether to request confirmation before creating a new buffer.\nSee `read-buffer' for features related to input and completion\nof buffer names.\n\nBUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil.\nIf BUFFER-OR-NAME is a string that does not identify an existing\nbuffer, create a buffer with that name.  If BUFFER-OR-NAME is\nnil, switch to the buffer returned by `other-buffer'.\n\nIf optional argument NORECORD is non-nil, do not put the buffer\nat the front of the buffer list, and do not make the window\ndisplaying it the most recently selected one.\n\nIf optional argument FORCE-SAME-WINDOW is non-nil, the buffer\nmust be displayed in the selected window when called\nnon-interactively; if that is impossible, signal an error rather\nthan calling `pop-to-buffer'.\n\nThe option `switch-to-buffer-preserve-window-point' can be used\nto make the buffer appear at its last position in the selected\nwindow.\n\nReturn the buffer switched to." (interactive #f(compiled-function () #<bytecode 0x472e8045>)) #<bytecode 0x40091597>) (#<buffer main.hs> nil nil))
  switch-to-buffer(#<buffer main.hs> nil nil)
  persp-switch-to-buffer(#<buffer main.hs>)
  #f(compiled-function (bon) #<bytecode 0x4626e1e5>)(#<buffer main.hs>)
  mapc(#f(compiled-function (bon) #<bytecode 0x4626e1e5>) (#<buffer main.hs>))
  persp-add-buffer(#<buffer main.hs> nil t nil)
  persp-add-or-not-on-find-file()
  run-hooks(find-file-hook)
  after-find-file(nil t)
  find-file-noselect-1(#<buffer main.hs> "~/dev/haskell_scheme/main.hs" nil nil "~/dev/haskell_scheme/main.hs" (8636547873 16777221))
  find-file-noselect("/Users/cyber/dev/haskell_scheme/main.hs" nil nil nil)
  find-file("/Users/cyber/dev/haskell_scheme/main.hs")
  find-file-existing("/Users/cyber/dev/haskell_scheme/main.hs")
  (lambda (&rest ignore) (find-file-existing "/Users/cyber/dev/haskell_scheme/main.hs"))((push-button :args nil :value "~/dev/haskell_scheme/main.hs" :action (lambda (&rest ignore) (find-file-existing "/Users/cyber/dev/haskell_scheme/main.hs")) :mouse-face highlight :follow-link "\15" :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay #<overlay from 3206 to 3234 in *spacemacs*> :from #<marker (moves after insertion) at 3206 in *spacemacs*> :to #<marker at 3234 in *spacemacs*>) (mouse-1 (#<window 3 on main.hs> 3217 (499 . 798) 627339154 nil 3217 (62 . 34) nil (3 . 14) (8 . 16))))
  widget-apply((push-button :args nil :value "~/dev/haskell_scheme/main.hs" :action (lambda (&rest ignore) (find-file-existing "/Users/cyber/dev/haskell_scheme/main.hs")) :mouse-face highlight :follow-link "\15" :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay #<overlay from 3206 to 3234 in *spacemacs*> :from #<marker (moves after insertion) at 3206 in *spacemacs*> :to #<marker at 3234 in *spacemacs*>) :action (mouse-1 (#<window 3 on main.hs> 3217 (499 . 798) 627339154 nil 3217 (62 . 34) nil (3 . 14) (8 . 16))))
  widget-apply-action((push-button :args nil :value "~/dev/haskell_scheme/main.hs" :action (lambda (&rest ignore) (find-file-existing "/Users/cyber/dev/haskell_scheme/main.hs")) :mouse-face highlight :follow-link "\15" :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay #<overlay from 3206 to 3234 in *spacemacs*> :from #<marker (moves after insertion) at 3206 in *spacemacs*> :to #<marker at 3234 in *spacemacs*>) (mouse-1 (#<window 3 on main.hs> 3217 (499 . 798) 627339154 nil 3217 (62 . 34) nil (3 . 14) (8 . 16))))
  widget-button-click((down-mouse-1 (#<window 3 on main.hs> 3217 (499 . 798) 627339058 nil 3217 (62 . 34) nil (3 . 14) (8 . 16))))
  funcall-interactively(widget-button-click (down-mouse-1 (#<window 3 on main.hs> 3217 (499 . 798) 627339058 nil 3217 (62 . 34) nil (3 . 14) (8 . 16))))
  call-interactively(widget-button-click nil nil)
  command-execute(widget-button-click)
revmischa commented 6 years ago

If I run stack it tries to download a big ghc binary, so maybe that's why