atom-haskell-archive / haskell-ghc-mod

haskell-ghc-mod atom package
https://atom.io/packages/haskell-ghc-mod
MIT License
69 stars 20 forks source link

Doesn't work with docker-enabled stack projects #167

Open seanhess opened 7 years ago

seanhess commented 7 years ago

I'm using the docker build feature with stack. This prevents this package from working.

  1. Create a stack project stack new my-project
  2. Follow the rest of the stack integration instructions, delete ./dist, and build ghc-mod in the project folder.
  3. Add the following to stack.yaml
docker:
  enable: true

ghc-mod is installed and works:

$ stack exec ghc-mod -- version
ghc-mod version 5.5.0.0 compiled by GHC 7.10.3

But because it's built via docker, ghc-mod is a linux executable.

$ /Users/seanhess/.stack/snapshots/x86_64-linux-dkda49f7ca9b244180d3cfb1987cbc9743/lts-6.10/7.10.3/bin/ghc-mod version
-bash: /Users/seanhess/.stack/snapshots/x86_64-linux-dkda49f7ca9b244180d3cfb1987cbc9743/lts-6.10/7.10.3/bin/ghc-mod: cannot execute binary file

Could you switch this project to use stack exec ghc-mod instead of trying to run the executables directly?

Atom Version: 1.9.6 System: Mac OS X 10.11.5 Thrown From: haskell-ghc-mod package, v1.16.0

Stack Trace

Haskell-ghc-mod: ghc-mod failed to launch. It is probably missing or misconfigured. 126

At Error: Command failed: ghc-mod version
/Users/seanhess/.stack/snapshots/x86_64-linux-dkda49f7ca9b244180d3cfb1987cbc9743/lts-6.10/7.10.3/bin/ghc-mod: /Users/seanhess/.stack/snapshots/x86_64-linux-dkda49f7ca9b244180d3cfb1987cbc9743/lts-6.10/7.10.3/bin/ghc-mod: cannot execute binary file

PATH: /Users/seanhess/miniconda2/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Users/seanhess/.stack/programs/x86_64-osx/ghc-8.0.1/bin:/Users/seanhess/.local/bin:/usr/local/octave/3.8.0/bin:/Users/seanhess/bin:/Users/seanhess/local/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
path: undefined
Path: undefined

Error
    at /Users/seanhess/.atom/packages/haskell-ghc-mod/lib/util.coffee:60:26
    at ChildProcess.exithandler (child_process.js:221:5)
    at emitTwo (events.js:100:13)
    at ChildProcess.emit (events.js:185:7)
    at maybeClose (internal/child_process.js:850:16)
    at Socket.<anonymous> (internal/child_process.js:323:11)
    at emitOne (events.js:90:13)
    at Socket.emit (events.js:182:7)
    at Pipe._onclose (net.js:477:12)

Commands

     -0:08.2.0 vim-mode-plus:reset-normal-mode (atom-text-editor.editor.is-focused.vim-mode-plus.normal-mode)
     -0:07.7.0 core:save (atom-text-editor.editor.is-focused.vim-mode-plus.normal-mode)
     -0:04.9.0 pane:show-previous-item (atom-text-editor.editor.is-focused.vim-mode-plus.normal-mode)
     -0:04.9.0 blur (atom-text-editor.editor.is-focused.vim-mode-plus.normal-mode)
     -0:04.7.0 core:close (atom-text-editor.editor.vim-mode-plus.normal-mode.is-focused)
     -0:04.7.0 blur (atom-text-editor.editor.vim-mode-plus.normal-mode.is-focused)
     -0:03.9.0 fuzzy-finder:toggle-file-finder (atom-text-editor.editor.vim-mode-plus.normal-mode.is-focused)
     -0:03.8.0 blur (atom-text-editor.editor.vim-mode-plus.normal-mode.is-focused)
  2x -0:03.1.0 core:backspace (atom-text-editor.editor.mini.is-focused)
     -0:02.0 core:confirm (atom-text-editor.editor.mini.is-focused)
  4x -0:02.0 blur (atom-text-editor.editor.mini.is-focused)
     -0:01.3.0 core:save (atom-text-editor.editor.vim-mode-plus.normal-mode.is-focused)
     -0:00.3.0 command-palette:toggle (atom-text-editor.editor.vim-mode-plus.normal-mode.is-focused)
     -0:00.1.0 blur (atom-text-editor.editor.vim-mode-plus.normal-mode.is-focused)

Config

{
  "core": {
    "closeEmptyWindows": false,
    "disabledPackages": [
      "ide-flow",
      "linter-hdevtools",
      "ide-haskell",
      "autocomplete-haskell"
    ],
    "excludeVcsIgnoredPaths": false,
    "ignoredNames": [
      ".git",
      ".hg",
      ".svn",
      ".DS_Store",
      "._*",
      "Thumbs.db",
      "elm.js"
    ]
  },
  "haskell-ghc-mod": {
    "useLinter": true
  }
}

Installed Packages

# User
autocomplete-haskell, v0.6.6 (inactive)
cursor-history, v0.5.9 (active)
elm-format, v2.0.1 (active)
git-plus, v5.16.2 (inactive)
haskell-ghc-mod, v1.16.0 (active)
hyperclick, v0.0.37 (active)
hyperlink-hyperclick, v1.3.3 (active)
ide-haskell, v1.6.6 (inactive)
language-elm, v1.5.0 (active)
language-haskell, v1.9.3 (active)
linter, v1.11.14 (active)
linter-elm-make, v0.13.2 (active)
linter-hdevtools, v1.10.0 (inactive)
trailing-spaces, v0.3.2 (active)
vim-mode-plus, v0.49.1 (active)
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.51.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.43.0 (inactive)
base16-tomorrow-dark-theme, v1.1.0 (inactive)
base16-tomorrow-light-theme, v1.1.1 (inactive)
one-dark-ui, v1.3.2 (active)
one-light-ui, v1.3.2 (inactive)
one-dark-syntax, v1.2.0 (active)
one-light-syntax, v1.2.0 (inactive)
solarized-dark-syntax, v1.0.2 (inactive)
solarized-light-syntax, v1.0.2 (inactive)
about, v1.5.2 (active)
archive-view, v0.61.1 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.11.1 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.0 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (active)
background-tips, v0.26.0 (active)
bookmarks, v0.41.0 (active)
bracket-matcher, v0.82.1 (active)
command-palette, v0.38.0 (active)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
exception-reporting, v0.38.3 (active)
fuzzy-finder, v1.3.0 (active)
git-diff, v1.1.0 (active)
find-and-replace, v0.198.0 (inactive)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.1 (active)
image-view, v0.58.0 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.1 (inactive)
markdown-preview, v0.158.0 (active)
metrics, v0.53.1 (active)
notifications, v0.64.1 (active)
open-on-github, v1.2.0 (inactive)
package-generator, v1.0.0 (inactive)
settings-view, v0.238.0 (active)
snippets, v1.0.2 (active)
spell-check, v0.67.1 (active)
status-bar, v1.4.1 (active)
styleguide, v0.46.0 (active)
symbols-view, v0.113.0 (inactive)
tabs, v0.98.0 (active)
timecop, v0.33.1 (active)
tree-view, v0.208.0 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.34.0 (active)
whitespace, v0.32.2 (active)
wrap-guide, v0.38.1 (active)
language-c, v0.52.1 (active)
language-clojure, v0.21.0 (active)
language-coffee-script, v0.47.0 (active)
language-csharp, v0.12.1 (active)
language-css, v0.36.2 (active)
language-gfm, v0.86.0 (active)
language-git, v0.13.0 (active)
language-go, v0.42.0 (active)
language-html, v0.44.1 (active)
language-hyperlink, v0.16.0 (active)
language-java, v0.22.0 (active)
language-javascript, v0.119.0 (active)
language-json, v0.18.0 (active)
language-less, v0.29.3 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.35.0 (active)
language-php, v0.37.0 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.0 (active)
language-ruby, v0.68.5 (active)
language-ruby-on-rails, v0.25.0 (active)
language-sass, v0.52.0 (active)
language-shellscript, v0.22.3 (active)
language-source, v0.9.0 (active)
language-sql, v0.21.1 (active)
language-text, v0.7.1 (active)
language-todo, v0.28.0 (active)
language-toml, v0.18.0 (active)
language-xml, v0.34.8 (active)
language-yaml, v0.26.0 (active)

# Dev
No dev packages
lierdakil commented 7 years ago

Running 'ghc-mod' via 'stack exec' is not really supported, so I don't want to add any options for that.

However, you probably could do pretty much equivalent with a simple bash script, which you could use in h-g-m settings instead of real ghc-mod executable:


!/bin/bash

exec stack exec ghc-mod -- "$@"


Make sure to make it executable. Also make sure to use absolute path to this script (otherwise, some PATH weirdness may occur)

2016-08-08 21:16 GMT+03:00 Sean Hess notifications@github.com:

I'm using the docker build feature with stack https://docs.haskellstack.org/en/stable/docker_integration/. This prevents this package from working.

  1. Create a stack project stack new my-project
  2. Follow the rest of the stack integration instructions, delete ./dist, and build ghc-mod in the project folder.
  3. Add the following to stack.yaml

docker: enable: true

ghc-mod is installed and works:

$ stack exec ghc-mod -- version ghc-mod version 5.5.0.0 compiled by GHC 7.10.3

But because it's built via docker, ghc-mod is a linux executable.

$ /Users/seanhess/.stack/snapshots/x86_64-linux- dkda49f7ca9b244180d3cfb1987cbc9743/lts-6.10/7.10.3/bin/ghc-mod version -bash: /Users/seanhess/.stack/snapshots/x86_64-linux- dkda49f7ca9b244180d3cfb1987cbc9743/lts-6.10/7.10.3/bin/ghc-mod: cannot execute binary file

Could you switch this project to use stack exec ghc-mod instead of trying to run the executables directly?

Atom Version: 1.9.6 System: Mac OS X 10.11.5 Thrown From: haskell-ghc-mod package, v1.16.0

Stack Trace

Haskell-ghc-mod: ghc-mod failed to launch. It is probably missing or misconfigured. 126

At Error: Command failed: ghc-mod version /Users/seanhess/.stack/snapshots/x86_64-linux- dkda49f7ca9b244180d3cfb1987cbc9743/lts-6.10/7.10.3/bin/ghc-mod: /Users/seanhess/.stack/snapshots/x86_64-linux- dkda49f7ca9b244180d3cfb1987cbc9743/lts-6.10/7.10.3/bin/ghc-mod: cannot execute binary file

PATH: /Users/seanhess/miniconda2/bin:/Library/Frameworks/ Python.framework/Versions/2.7/bin:/Users/seanhess/.stack/ programs/x86_64-osx/ghc-8.0.1/bin:/Users/seanhess/.local/ bin:/usr/local/octave/3.8.0/bin:/Users/seanhess/bin:/ Users/seanhess/local/bin:/opt/local/bin:/opt/local/sbin:/ usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin path: undefined Path: undefined

Error at /Users/seanhess/.atom/packages/haskell-ghc-mod/lib/util.coffee:60:26 at ChildProcess.exithandler (child_process.js:221:5) at emitTwo (events.js💯13) at ChildProcess.emit (events.js:185:7) at maybeClose (internal/child_process.js:850:16) at Socket. (internal/child_process.js:323:11) at emitOne (events.js:90:13) at Socket.emit (events.js:182:7) at Pipe._onclose (net.js:477:12)

Commands

-0:08.2.0 vim-mode-plus:reset-normal-mode (atom-text-editor.editor.is-focused.vim-mode-plus.normal-mode) -0:07.7.0 core:save (atom-text-editor.editor.is-focused.vim-mode-plus.normal-mode) -0:04.9.0 pane:show-previous-item (atom-text-editor.editor.is-focused.vim-mode-plus.normal-mode) -0:04.9.0 blur (atom-text-editor.editor.is-focused.vim-mode-plus.normal-mode) -0:04.7.0 core:close (atom-text-editor.editor.vim-mode-plus.normal-mode.is-focused) -0:04.7.0 blur (atom-text-editor.editor.vim-mode-plus.normal-mode.is-focused) -0:03.9.0 fuzzy-finder:toggle-file-finder (atom-text-editor.editor.vim-mode-plus.normal-mode.is-focused) -0:03.8.0 blur (atom-text-editor.editor.vim-mode-plus.normal-mode.is-focused)

2x -0:03.1.0 core:backspace (atom-text-editor.editor.mini.is-focused) -0:02.0 core:confirm (atom-text-editor.editor.mini.is-focused) 4x -0:02.0 blur (atom-text-editor.editor.mini.is-focused) -0:01.3.0 core:save (atom-text-editor.editor.vim-mode-plus.normal-mode.is- focused) -0:00.3.0 command-palette:toggle (atom-text-editor.editor.vim- mode-plus.normal-mode.is-focused) -0:00.1.0 blur (atom-text-editor.editor.vim-mode-plus.normal-mode.is- focused)

Config

{
  "core": {
    "closeEmptyWindows": false,
    "disabledPackages": [
      "ide-flow",
      "linter-hdevtools",
      "ide-haskell",
      "autocomplete-haskell"
    ],
    "excludeVcsIgnoredPaths": false,
    "ignoredNames": [
      ".git",
      ".hg",
      ".svn",
      ".DS_Store",
      "._*",
      "Thumbs.db",
      "elm.js"
    ]
  },
  "haskell-ghc-mod": {
    "useLinter": true
  }
}

Installed Packages

# User
autocomplete-haskell, v0.6.6 (inactive)
cursor-history, v0.5.9 (active)
elm-format, v2.0.1 (active)
git-plus, v5.16.2 (inactive)
haskell-ghc-mod, v1.16.0 (active)
hyperclick, v0.0.37 (active)
hyperlink-hyperclick, v1.3.3 (active)
ide-haskell, v1.6.6 (inactive)
language-elm, v1.5.0 (active)
language-haskell, v1.9.3 (active)
linter, v1.11.14 (active)
linter-elm-make, v0.13.2 (active)
linter-hdevtools, v1.10.0 (inactive)
trailing-spaces, v0.3.2 (active)
vim-mode-plus, v0.49.1 (active)
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.51.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.43.0 (inactive)
base16-tomorrow-dark-theme, v1.1.0 (inactive)
base16-tomorrow-light-theme, v1.1.1 (inactive)
one-dark-ui, v1.3.2 (active)
one-light-ui, v1.3.2 (inactive)
one-dark-syntax, v1.2.0 (active)
one-light-syntax, v1.2.0 (inactive)
solarized-dark-syntax, v1.0.2 (inactive)
solarized-light-syntax, v1.0.2 (inactive)
about, v1.5.2 (active)
archive-view, v0.61.1 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.11.1 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.0 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (active)
background-tips, v0.26.0 (active)
bookmarks, v0.41.0 (active)
bracket-matcher, v0.82.1 (active)
command-palette, v0.38.0 (active)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
exception-reporting, v0.38.3 (active)
fuzzy-finder, v1.3.0 (active)
git-diff, v1.1.0 (active)
find-and-replace, v0.198.0 (inactive)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.1 (active)
image-view, v0.58.0 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.1 (inactive)
markdown-preview, v0.158.0 (active)
metrics, v0.53.1 (active)
notifications, v0.64.1 (active)
open-on-github, v1.2.0 (inactive)package-generator, v1.0.0 (inactive)
settings-view, v0.238.0 (active)
snippets, v1.0.2 (active)
spell-check, v0.67.1 (active)
status-bar, v1.4.1 (active)
styleguide, v0.46.0 (active)
symbols-view, v0.113.0 (inactive)
tabs, v0.98.0 (active)
timecop, v0.33.1 (active)
tree-view, v0.208.0 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.34.0 (active)
whitespace, v0.32.2 (active)
wrap-guide, v0.38.1 (active)
language-c, v0.52.1 (active)
language-clojure, v0.21.0 (active)
language-coffee-script, v0.47.0 (active)
language-csharp, v0.12.1 (active)
language-css, v0.36.2 (active)
language-gfm, v0.86.0 (active)
language-git, v0.13.0 (active)
language-go, v0.42.0 (active)
language-html, v0.44.1 (active)
language-hyperlink, v0.16.0 (active)
language-java, v0.22.0 (active)
language-javascript, v0.119.0 (active)
language-json, v0.18.0 (active)
language-less, v0.29.3 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.35.0 (active)
language-php, v0.37.0 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.0 (active)
language-ruby, v0.68.5 (active)
language-ruby-on-rails, v0.25.0 (active)
language-sass, v0.52.0 (active)
language-shellscript, v0.22.3 (active)
language-source, v0.9.0 (active)
language-sql, v0.21.1 (active)
language-text, v0.7.1 (active)
language-todo, v0.28.0 (active)
language-toml, v0.18.0 (active)
language-xml, v0.34.8 (active)
language-yaml, v0.26.0 (active)
# DevNo dev packages

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<https://github.com/atom-haskell/haskell-ghc-mod/issues/167>, or mute the
thread
<https://github.com/notifications/unsubscribe-auth/AG8EZt6BnkJAuXQUZE58j0qweaoun6mgks5qd3KKgaJpZM4JfUgy>
.
lierdakil commented 7 years ago

Whelp, github broke formatting in e-mail, so here's the part that it gobbled up:

#!/bin/bash

exec stack exec ghc-mod -- "$@"

Make sure to make it executable. Also make sure to use absolute path to this script (otherwise, some PATH weirdness may occur)

seanhess commented 7 years ago

Thanks!

On Tue, Aug 9, 2016 at 6:50 AM Nikolay Yakimov notifications@github.com wrote:

Whelp, github broke formatting in e-mail, so here's the part that it gobbled up:

!/bin/bash

exec stack exec ghc-mod -- "$@"

Make sure to make it executable. Also make sure to use absolute path to

this script (otherwise, some PATH weirdness may occur)

You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/atom-haskell/haskell-ghc-mod/issues/167#issuecomment-238542582, or mute the thread https://github.com/notifications/unsubscribe-auth/AAA_ed2de8S6RrT3OsBL00d6rKcfG7gBks5qeHeWgaJpZM4JfUgy .