commercialhaskell / stack

The Haskell Tool Stack
http://haskellstack.org
BSD 3-Clause "New" or "Revised" License
4k stars 844 forks source link

Add pedantic option to ghci #4463

Closed alexkazik closed 5 years ago

alexkazik commented 5 years ago

I'd like a pedantic option to the ghci sub-command: stack ghci --pedantic. I know that stack ghci --ghci-options "-Wall -Werror" does the same but it's more to type and it's then consistent with build.

mihaimaruseac commented 5 years ago

Sounds like a good idea. Do you want to try sending a PR for it?

alexkazik commented 5 years ago

I will try it.

alexkazik commented 5 years ago

This should do it: https://github.com/alexkazik/stack/commit/df30f9def5555858c046946dcff3111b50468086

But when I use the new stack (after stack install stack) it always complains about ghc missing when I try to either ~/.local/bin/stack build or ~/.local/bin/stack ghci. I don't have ghc installed and the former version (up to 1.9.3) uses the one in ~/.stack/.

mihaimaruseac commented 5 years ago

It looks good to me, need to make a PR to be able to merge it.

I don't know why you get the missing ghc issue. Can you try stack --version and ~/.local/bin/stack --version?

alexkazik commented 5 years ago
$ ~/.local/bin/stack --version
Version 1.10.0, Git revision 1bbed48cf22ecc7a3fa3ed230e1cc6354fdf809f (dirty) (6717 commits) x86_64 hpack-0.31.1
$ stack --version
1.9.3 x86_64
Compiled with:
- Cabal-2.4.0.1
- Glob-0.9.3
- HUnit-1.6.0.0
- QuickCheck-2.11.3
- StateVar-1.1.1.1
- aeson-1.3.1.1
- aeson-compat-0.3.9
- annotated-wl-pprint-0.7.0
- ansi-terminal-0.8.2
- ansi-wl-pprint-0.6.8.2
- array-0.5.2.0
- asn1-encoding-0.9.5
- asn1-parse-0.9.4
- asn1-types-0.3.2
- async-2.2.1
- attoparsec-0.13.2.2
- attoparsec-iso8601-1.0.1.0
- auto-update-0.1.4
- base-4.11.1.0
- base-compat-0.10.5
- base-orphans-0.7
- base-prelude-1.3
- base16-bytestring-0.1.1.6
- base64-bytestring-1.0.0.1
- basement-0.0.8
- bifunctors-5.5.3
- binary-0.8.5.1
- bindings-uname-0.1
- bitarray-0.0.1.1
- blaze-builder-0.4.1.0
- blaze-html-0.9.1.1
- blaze-markup-0.8.2.2
- byteable-0.1.1
- bytestring-0.10.8.2
- call-stack-0.1.0
- case-insensitive-1.2.0.11
- cereal-0.5.7.0
- clock-0.7.2
- colour-2.3.4
- comonad-5.0.4
- conduit-1.3.1
- conduit-extra-1.3.0
- connection-0.2.8
- containers-0.5.11.0
- contravariant-1.4.1
- cookie-0.4.4
- cryptohash-0.11.9
- cryptohash-sha256-0.11.101.0
- cryptonite-0.25
- cryptonite-conduit-0.2.2
- data-default-class-0.1.2.0
- deepseq-1.4.3.0
- digest-0.0.1.2
- directory-1.3.1.5
- distributive-0.5.3
- dlist-0.8.0.5
- easy-file-0.2.2
- echo-0.1.3
- ed25519-0.0.5.0
- either-5.0.1
- exceptions-0.10.0
- extra-1.6.13
- fast-logger-2.4.11
- file-embed-0.0.10.1
- filelock-0.1.1.2
- filepath-1.4.2
- free-5.0.2
- fsnotify-0.3.0.1
- generic-deriving-1.12.2
- ghc-boot-th-8.4.4
- ghc-prim-0.5.2.0
- hackage-security-0.5.3.0
- hashable-1.2.7.0
- haskell-src-exts-1.20.3
- haskell-src-meta-0.8.0.3
- hfsevents-0.1.6
- hourglass-0.2.12
- hpack-0.31.1
- hpc-0.6.0.3
- hspec-2.5.5
- hspec-core-2.5.5
- hspec-discover-2.5.5
- hspec-expectations-0.8.2
- hspec-smallcheck-0.5.2
- http-api-data-0.3.8.1
- http-client-0.5.14
- http-client-tls-0.3.5.3
- http-conduit-2.3.2
- http-types-0.12.2
- infer-license-0.2.0
- integer-gmp-1.0.2.0
- integer-logarithms-1.0.2.2
- lifted-base-0.2.3.12
- logict-0.6.0.2
- megaparsec-6.5.0
- memory-0.14.18
- microlens-0.4.9.1
- microlens-th-0.4.2.3
- mime-types-0.1.0.8
- mintty-0.1.2
- monad-control-1.0.2.3
- monad-logger-0.3.30
- monad-loops-0.4.3
- mono-traversable-1.0.9.0
- mtl-2.2.2
- mustache-2.3.0
- neat-interpolation-0.3.2.2
- network-2.6.3.6
- network-uri-2.6.1.0
- old-locale-1.0.0.7
- old-time-1.1.0.3
- open-browser-0.2.1.0
- optparse-applicative-0.14.3.0
- parsec-3.1.13.0
- parser-combinators-1.0.0
- path-0.6.1
- path-io-1.3.3
- path-pieces-0.2.1
- pem-0.2.4
- persistent-2.8.2
- persistent-sqlite-2.8.2
- persistent-template-2.5.4
- pretty-1.1.3.6
- primitive-0.6.3.0
- process-1.6.3.0
- profunctors-5.2.2
- project-template-0.2.0.1
- quickcheck-io-0.2.0
- random-1.1
- regex-applicative-0.3.3
- regex-applicative-text-0.1.0.1
- resource-pool-0.2.3.2
- resourcet-1.2.2
- retry-0.7.7.0
- rio-0.1.5.0
- rts-1.0
- safe-0.3.17
- scientific-0.3.6.2
- semigroupoids-5.2.2
- semigroups-0.18.5
- setenv-0.1.1.3
- silently-1.2.5
- smallcheck-1.1.5
- socks-0.5.6
- split-0.2.3.3
- stm-2.4.5.1
- stm-chans-3.0.0.4
- store-0.5.0.1
- store-core-0.4.4
- streaming-commons-0.2.1.0
- syb-0.7
- tagged-0.8.5
- tar-0.5.1.0
- template-haskell-2.13.0.0
- temporary-1.3
- text-1.2.3.1
- text-metrics-0.3.0
- tf-random-0.5
- th-abstraction-0.2.8.0
- th-expand-syns-0.4.4.0
- th-lift-0.7.11
- th-lift-instances-0.1.11
- th-orphans-0.13.6
- th-reify-many-0.1.8
- th-utilities-0.2.0.1
- time-1.8.0.2
- time-locale-compat-0.1.1.5
- tls-1.4.1
- transformers-0.5.5.0
- transformers-base-0.4.5.2
- transformers-compat-0.6.2
- typed-process-0.2.3.0
- unicode-transforms-0.3.5
- unix-2.7.2.2
- unix-compat-0.5.1
- unix-time-0.3.8
- unliftio-0.2.8.1
- unliftio-core-0.1.2.0
- unordered-containers-0.2.9.0
- uri-bytestring-0.3.2.1
- uuid-types-1.0.3
- vector-0.12.0.1
- vector-algorithms-0.7.0.4
- void-0.7.2
- x509-1.7.5
- x509-store-1.6.7
- x509-system-1.6.6
- x509-validation-1.6.11
- yaml-0.10.4.0
- zip-archive-0.3.3
- zlib-0.6.2

Warning: this is an unsupported build that may use different versions of
dependencies and GHC than the officially released binaries, and therefore may
not behave identically.  If you encounter problems, please try the latest
official build by running 'stack upgrade --force-download'.

(installed via brew)

mihaimaruseac commented 5 years ago

So the one in ~/.local/bin is the installed one. I'll try to reproduce later today or just check the PR on my box and then merge it. Thank you

mihaimaruseac commented 5 years ago

Oh, I think it is because of #4466. If you do a rebase on top of the fix (#4467) for that it should work.

alexkazik commented 5 years ago

Yes, that did the trick. But I wonder wether it's maybe better to add to --ghci-options, now it's --ghc-options. With added to --ghc-options the pre-compile step fails and it's trying ghci anyway and then there is the error also. With --ghci-options the pre-compile would work.

mihaimaruseac commented 5 years ago

It's better to add to --ghci-options.

alexkazik commented 5 years ago

Updated the PR.

mihaimaruseac commented 5 years ago

Thank you