Commit Graph

66 Commits

Author SHA1 Message Date
Daniel Gröber 82bb0090c0 Refactoring to use cabal-helper-wrapper
This turned out to be quite involved but save for this huge commit it's
actually quite awesome and squashes quite a few bugs and nasty
problems (hopefully). Most importantly we now have native cabal
component support without the user having to do anything to get it!

To do this we traverse imports starting from each component's
entrypoints (library modules or Main source file for executables) and
use this information to find which component's options each module will
build with. Under the assumption that these modules have to build with
every component they're used in we can now just pick one.

Quite a few internal assumptions have been invalidated by this
change. Most importantly the runGhcModT* family of cuntions now change
the current working directory to `cradleRootDir`.
2015-03-05 17:35:24 +01:00
Daniel Gröber 7438539ca5 Change primary license to AGPL-3 2015-03-03 21:09:18 +01:00
Daniel Gröber ef96b926c7 Use cabal-helper to support Cabal >= 1.22 with any version of ghc 2015-02-08 12:43:35 +01:00
Daniel Gröber 2b4fd77c28 Add GHC-7.10 support 2015-02-08 12:43:35 +01:00
Dimitri 'phaazon' Sabadie f023f4fc06 Fixed #422. 2014-12-24 22:12:36 +01:00
Daniel Gröber 782f234981 Fix ghc-mod tempdirs not being removed on exit 2014-12-24 21:34:57 +01:00
Daniel Gröber 506cf18885 Don't use fromJust 2014-11-03 00:33:23 +01:00
Daniel Gröber 14ee81e300 Allow GhcModError as an Exception and catch it in GhcModT's liftIO 2014-10-31 22:23:48 +01:00
Daniel Gröber 9ac128aa6f Fix #387, Pattern match failure in GhcPkg 2014-10-30 01:10:56 +01:00
Kazu Yamamoto bc65c477d0 fixing typo. 2014-09-22 11:20:11 +09:00
Rob Everest 2c2e7782d2 Use the cabal configuration flags where possible when finalizing the PackageDescription. 2014-09-12 13:15:05 +10:00
Daniel Gröber 274b5d8e1c Rephrase some docs 2014-08-29 17:21:38 +02:00
Daniel Gröber a0ae09a3e6 Give readProcess' more sensible error messages.
Also a bunch of refactoring for GhcModError
2014-08-28 15:57:49 +02:00
Daniel Gröber 1b5917c70e Remove `withErrorHandler`, use `liftExceptions` instead 2014-08-19 04:30:44 +02:00
Kazu Yamamoto 0fd8b9afd8 first try to resolve #322. 2014-08-18 16:55:41 +09:00
Daniel Gröber 271ff4e162 Catch `cabal configure` failure properly 2014-08-18 08:06:36 +02:00
Daniel Gröber f5d051dcef Remove `toGhcModT` it's not needed anymore. 2014-08-15 20:35:21 +02:00
Kazu Yamamoto d5733874e0 using <$> 2014-08-14 11:14:46 +09:00
Kazu Yamamoto 2875275fc0 hlint suggestions. 2014-08-14 11:11:02 +09:00
Daniel Gröber ec1b115cc1 In `check`, apply ghcUserOptions after setting -Wall 2014-08-13 19:28:08 +02:00
Daniel Gröber c1c7dcec20 Rename `ghcOpts` -> `ghcUserOptions` 2014-08-13 19:28:08 +02:00
Daniel Gröber 0fa870efa6 Fix ghc<=7.6 2014-08-12 18:54:48 +02:00
Daniel Gröber edeb57a6a4 note 2014-08-12 18:24:39 +02:00
Daniel Gröber fa65d7269e Add a test for gmsGet/Put 2014-08-12 18:24:39 +02:00
Daniel Gröber 87c587993a Make `parseCabalFile` use MonadError 2014-08-12 18:24:39 +02:00
Daniel Gröber e345c92edb Make GhcModT's MonadState instance pass through
..to the underlying monad
2014-08-12 18:23:50 +02:00
Daniel Gröber c0652c0321 Move GhcModError to Types.hs 2014-08-12 18:23:50 +02:00
Daniel Gröber bd28310e59 Don't fall back to sandbox if cabal file failes to parse 2014-08-12 00:02:39 +02:00
Daniel Gröber fad99f466f Export GhcModError(..) 2014-08-06 20:40:11 +02:00
Daniel Gröber cb28e9ec8f Fix warning 2014-08-06 19:38:42 +02:00
Daniel Gröber f311efd90c Rework GhcModT monad stack 2014-08-06 19:38:42 +02:00
Daniel Gröber 0736516512 Document exposed parts of GhcMod.Monad 2014-07-21 00:27:12 +02:00
Kazu Yamamoto 30ddd655cd export minimum Monad stuff from GhcMod. 2014-07-18 15:31:42 +09:00
Kazu Yamamoto 6d42354a5b setMode and getMode 2014-07-18 14:55:21 +09:00
Kazu Yamamoto 7b079896b1 doc sectioning. 2014-07-18 14:55:08 +09:00
Kazu Yamamoto 233f4cf05e moving setFlags to Gap. 2014-07-18 11:09:11 +09:00
Kazu Yamamoto 0ce70ae22d set Opt_SpecConstr just in case. 2014-07-18 10:52:57 +09:00
Kazu Yamamoto cffa7463eb adopting hlint's suggestions. 2014-07-17 17:16:44 +09:00
Kazu Yamamoto cf0df26560 Monad.hs is now exported by GhcMod.hs. 2014-07-17 14:30:42 +09:00
Kazu Yamamoto 49284a64be Uses HscNothing and falls back to HscInterpreted if necessary (#205)
Two Test case are fails but it is not fatal.
2014-07-15 17:20:35 +09:00
Kazu Yamamoto c87ea45488 adding #if to Monad.hs. 2014-07-15 14:45:41 +09:00
Kazu Yamamoto a7a02a3f4c Bringing back MaybeT
This brings back a warning to be fixed.
2014-07-15 12:49:12 +09:00
Kazu Yamamoto 1524d2a43e removing warnings. 2014-07-15 12:10:18 +09:00
Daniel Gröber 686179f12b Fix building with ghc < 7.8 2014-07-15 02:34:07 +02:00
Daniel Gröber 7474a1b652 Bring back `GhcMod` but this time it's a GhcModT with an ErrorT inside 2014-07-15 01:04:06 +02:00
Daniel Gröber f0bfcb8811 Use GhcModT everywhere and remove the GhcMod alias
Not doing this makes having GhcModT pretty pointless as users of the
library wouldn't be able to use custom inner monads as evey function for
dealing with GhcModT's would be constraint to (GhcModT IO) thus only
allowing IO as the inner monad.
2014-07-15 01:03:56 +02:00
Daniel Gröber b6896a481a Move `initializeFlagsWithCradle` to Monad.hs 2014-07-12 03:33:04 +02:00
Daniel Gröber d818a64f6f whitespace 2014-07-11 04:51:27 +02:00
Daniel Gröber 320b2243a2 Make GhcMod a special case of GhcModT
i.e. turn GhcMod into a monad transformer
2014-07-11 04:51:11 +02:00
Daniel Gröber 4b6a687bc1 Migrate the remaining parts of the exposed API to `GhcMod a` 2014-07-11 03:13:38 +02:00