[ANN] ghc-mod-5.5.0.0: Happy Haskell Hacking

I'm pleased to announce the release of ghc-mod 5.5.0.0! 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 command. * 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): https://github.com/DanielG/ghc-mod https://github.com/iquiw/company-ghc - Vim: https://github.com/eagletmt/ghcmod-vim https://github.com/eagletmt/neco-ghc - Atom: https://github.com/atom-haskell/ide-haskell Known issues ============ For issues other than the ones mentioned below visit our issue tracker: https://github.com/DanielG/ghc-mod/issues 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, unmaintainable. If you do notice any other problems please report them: https://github.com/DanielG/ghc-mod/issues/new ---- [1]: https://github.com/alanz/HaRe [2]: https://github.com/imeckler/mote [3]: https://github.com/haskell/haskell-ide-engine
participants (1)
-
Daniel Gröber