[Haskell-cafe] [ANN] ghc-mod- Happy Haskell Hacking

Daniel Gröber dxld at darkboxed.org
Tue Jan 19 21:19:48 UTC 2016

I'm pleased to announce the release of ghc-mod!

This is primarily a maintenance and bug fix release. We are releasing this as a
major version bump as we are following a policy of not trying to keep API
compatibility until v6.0 to enable us to clean up ghc-mod's internals and API.

What's new?

* Cabal flags are now preserved across automatic reconfigurations

  When ghc-mod detects something influencing the cabal configuration has changed
  since the last invocation it will automatically reconfigure the
  project. Previously this would call 'cabal configure' without any additional
  options thus possibly reverting flags the user might have added to the
  configure command previously. Now we extract the current set of flags from the
  existing configuration and pass the appropriate options to the configure

* Rewritten command-line parser (again)

  The home grown sub-command parser based on getopt has been a user experience
  disaster so we've replaced it using a new optparse-applicative based parser.
  This does have the unfortunate side effect that we had to remove support for
  some optional arguments we had supported previously thus breaking
  compatibility with very old frontends.

* Remove CWD requirement from command-line tools

  In v5.4.0.0 we had to add a workaround for a nasty race condition in 'ghc-mod
  legacy-interactive' (ghc-modi) which added a requirement that all ghc-mod
  command line tools are run in the root of each project's directory. This
  limitation has now been removed. Frontends which have implemented this
  workaround should be compatible going forward but for performance reasons it
  is advisable to disable the workaround for versions after v5.5.0.0.

* Various bug fixes and smaller improvements

  From the change log:
    * Fix cabal-helper errors when no global GHC is installed (Stack)
    * Support for spaces in file names when using legacy-interactive
    * Fix "No instance nor default method for class operation put"
    * Fix a variety of caching related issues
    * Emacs: Fix slowdown and bugs caused by excessive use of `map-file`
    * Emacs: Add ghc-report-errors to inhibit *GHC Error* logging

What is ghc-mod?

ghc-mod is both a back-end program for enhancing editors and other kinds of
development environments with support for Haskell and a library for abstracting
the black magic incantations required to use the GHC API in various
environments, especially Cabal and Stack projects. The library is used by
ambitious projects like HaRe[1], mote[2] and haskell-ide-engine[3]

Getting ghc-mod

GitHub: https://github.com/DanielG/ghc-mod
Hackage: http://hackage.haskell.org/package/ghc-mod

Editor frontends:

  - Emacs (native):
  - Vim:
  - Atom:

Known issues

For issues other than the ones mentioned below visit our issue tracker:


Frequently reported issues

ghc-mod once compiled is bound to one version of GHC since we link against the
GHC API library. This used to not be a very big problem but since Stack made it
exceedingly easy for users to use more than one version of GHC without even
knowing the number of problems in this area has exploded. We are tracing the
issue in the following issue: https://github.com/DanielG/ghc-mod/issues/615
(Support switching GHC versions without recompiling ghc-mod)

ghc-mod's `case`, `sig` and `refine` commands still do not work properly with
GHC>7.10 (See https://github.com/DanielG/ghc-mod/issues/438). Unless
someone volunteers to fix this issue I will work towards replacing the features
using mote[2] instead as the current code is, from my point of view,

If you do notice any other problems please report them:


[1]: https://github.com/alanz/HaRe
[2]: https://github.com/imeckler/mote
[3]: https://github.com/haskell/haskell-ide-engine
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160119/9fea4144/attachment.sig>

More information about the Haskell-Cafe mailing list