Commit Graph

50 Commits

Author SHA1 Message Date
Daniel Gröber baf5cad809 Pass through --with-* options to cabal-helper 2015-03-07 19:37:19 +01:00
Daniel Gröber f0ea445a9b Cleanup errors and logging a bit 2015-03-05 17:35:28 +01:00
Daniel Gröber bc71877dcf Change the way cabal-helper is built a bit 2015-03-05 17:35:28 +01:00
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 34dd9de83c Add Show instance for `Options` 2014-10-30 01:11:10 +01:00
Daniel Gröber 9ac128aa6f Fix #387, Pattern match failure in GhcPkg 2014-10-30 01:10:56 +01:00
Daniel Gröber 5a4bec8755 Rewrite `ghc-mod` command line frontend. 2014-09-18 10:45:14 +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
Kazu Yamamoto 190dc2ac51 try to fix Travis CI. 2014-08-20 11:59:44 +09:00
Daniel Gröber 147dd90ee7 Remove dedicated exception handling in `check` completely
Exceptions are already caught at the top level so this is unnecessary.
2014-08-19 04:49:44 +02:00
Daniel Gröber 1b5917c70e Remove `withErrorHandler`, use `liftExceptions` instead 2014-08-19 04:30:44 +02:00
Daniel Gröber 271ff4e162 Catch `cabal configure` failure properly 2014-08-18 08:06:36 +02:00
Daniel Gröber c1c7dcec20 Rename `ghcOpts` -> `ghcUserOptions` 2014-08-13 19:28:08 +02:00
Daniel Gröber e0bbd91eba Remove GMECabal, GMEGhc constructors from GhcModError for now 2014-08-12 21:11:35 +02:00
Daniel Gröber c0652c0321 Move GhcModError to Types.hs 2014-08-12 18:23:50 +02:00
Daniel Gröber 81c58585a2 Add functions for dealing with packages, modules and bindings to GHCApi 2014-07-11 10:43:51 +02:00
Daniel Gröber 9f94bc863c Add `Module` type 2014-07-11 05:44:31 +02:00
Daniel Gröber ebfb740a2e Move `convert` to it's own module. 2014-05-14 17:06:30 +02:00
Kohei Suzuki ef375668d1 Suppress empty line 2014-05-11 00:30:02 +09:00
Kazu Yamamoto c45415a367 cleaning up check, splice flag and logger. 2014-04-26 17:54:15 +09:00
Kazu Yamamoto 0c1469e53c <package>:<module> style.
refactoring for #159.
2014-04-24 11:26:30 +09:00
Kazu Yamamoto 3b3b767556 Merge branch 'dev-dynflags' of https://github.com/DanielG/ghc-mod into DanielG-dev-dynflags
Conflicts:
	Language/Haskell/GhcMod/GHCApi.hs
2014-04-23 12:20:18 +09:00
Daniel Gröber c9ca3a6d76 Clean up DynFlags initialization 2014-04-23 04:04:41 +02:00
Kazu Yamamoto b8a151421d removing fixme. 2014-04-22 12:34:35 +09:00
Kazu Yamamoto b3fd99fa7d using Builder. 2014-04-22 11:28:27 +09:00
Kazu Yamamoto 8983cf2d88 lineSeparator are only used in toList/toPlain. 2014-04-21 15:58:36 +09:00
Kazu Yamamoto 3d03cff06b refactoring for lineSeparator. 2014-04-21 14:58:25 +09:00
Kazu Yamamoto e09b406ee8 ToString String and doctest. 2014-04-21 09:45:00 +09:00
Kazu Yamamoto 4389dea800 -l for check. 2014-04-18 17:28:12 +09:00
Daniel Gröber 2381f6e1ab More refactoring of package handling
- 'GhcPkg' now parses 'ghc-pkg -v list' output directly to also get the
  package-id

- Remove unused field 'cradlePackages' in Cradle

- Remove 'getPackageDbPackages' and use 'ghcPkgListEx' instead
2014-04-18 03:59:46 +02:00
Kazu Yamamoto abb9ecd8ac style. 2014-04-16 11:59:00 +09:00
Daniel Gröber 30b8366526 Refactor the way packages databases are handled
- cradle now stores a list of active package databases instead of only
  the user store (if present).

- rename `cradlePackageDb` -> `cradlePkgDbStack` as that`s what the ghc
  documentaion calls this kind of thing

- `getPackageDbPackages` now returns names of all visible packages in
  the given directory. Also the implementation now uses `ghc-pkg`
  instead of manually looking at the package database
2014-04-15 05:15:50 +02:00
Kazu Yamamoto 3bfbbb8b5c supporting sandbox only (without cabal) to fix #164. 2014-03-30 17:28:57 +09:00
Kazu Yamamoto 955b1b4091 user package db options for both GHC and ghc-pkg. 2014-03-28 12:05:11 +09:00
Kazu Yamamoto 1f7e7dea3b adding doc. 2014-03-28 11:10:18 +09:00
Kazu Yamamoto 16e050439d removing fast/slow code. 2014-03-17 15:56:00 +09:00
Naohiro Aota a0db24b0a5 Extend Package to include id
This commit
1. rename Package with PackageBaseName
2. Pacakge = (PackageBaseName, Maybe String) to save its id
3. Expose packages with id if available
2014-01-30 20:45:30 +09:00
mvoidex 444dd225e1 Added -q option to list fully qualified names with browse command 2013-11-17 22:31:47 +04:00
mvoidex d4505041a9 Added project opt to specify module package-id 2013-10-29 20:48:27 +04:00
Kazu Yamamoto 668e9e4771 Removing GHCVersion. 2013-09-20 17:21:10 +09:00
Kazu Yamamoto 5f0fcd0442 getCompilerOptions handles package-db options. 2013-09-20 17:15:41 +09:00
Kazu Yamamoto 49791fb6ea Supporting sandbox sharing.
Braking backword compatibility of findCradle.
2013-09-20 15:48:50 +09:00
Kazu Yamamoto f0e191dc98 Eq and Show for CompilerOptions. 2013-09-20 11:21:31 +09:00
Kazu Yamamoto 97da4e9be1 Defining CompilerOptions. 2013-09-19 15:58:50 +09:00
Kazu Yamamoto 45751e3926 Exporting more low level APIs. 2013-09-16 09:56:08 +09:00
Kazu Yamamoto 5e53841451 improving doc. 2013-09-05 14:35:28 +09:00
Kazu Yamamoto ed5ac820d6 adding LineSeparator. 2013-09-03 14:40:51 +09:00
Alan Zimmerman e487a535eb Rename GhcModLowLevel to GhcMod.Internal and document exposed items. 2013-08-26 18:28:21 +02:00
Kazu Yamamoto 089d490607 writing docs. 2013-05-20 14:28:56 +09:00
Kazu Yamamoto bac4bbbcf3 Changing GHCMod as a library. 2013-05-17 10:00:01 +09:00