Commit Graph

288 Commits

Author SHA1 Message Date
Daniel Gröber fae4730ba5 Import HscTypes (HscEnv) with ghc <= 7.2 2014-05-08 13:14:44 +02:00
Daniel Gröber a7b2c86985 Fall back to Cabal 1.16 format on runtime if extracting fails 2014-05-08 12:59:52 +02:00
Daniel Gröber 4c93819da8 Fix ghc-7.8 2014-05-08 11:50:51 +02:00
Daniel Gröber 7b8540add1 Add support for getting pkgDeps with Cabal <= 1.16 2014-05-08 11:32:40 +02:00
Kazu Yamamoto b7d92417bc HasDynFlags is provided after 7.6. 2014-05-08 17:01:01 +09:00
Kazu Yamamoto cc3e728f03 fixing comment. 2014-05-08 16:51:15 +09:00
Daniel Gröber 61207c13d3 Add MonadIO instance for RWST 2014-05-08 08:36:18 +02:00
Kazu Yamamoto 8561e7b656 To break cyclic import, this patch makes `GhcPkg.hs` independent from `Monad.hs`(refactoring for #244)
This removes `ghcPkgList`, `ghcPkgListEx` and `ghcPkgDbOpt`. I'm not sure
this is a right way to do.
2014-05-08 12:42:45 +09:00
Kazu Yamamoto f199ea9e2e removing warnings. 2014-05-08 10:49:40 +09:00
Daniel Gröber 5044cf7f56 Fix warnings 2014-05-05 09:43:14 +02:00
Daniel Gröber 635830b527 Fix #242, ghcPkgList(Ex) on NixOS 2014-05-05 00:29:10 +02:00
Daniel Gröber ea427d60ba note: MonadIO class 2014-05-04 04:57:38 +02:00
Daniel Gröber c50b4f5a38 ghc-mod deserves it's own monad
Having to call `findCradle` and `initializeFlagsWithCradle` everywhere
we interact with ghc-mod's API doesn't seem very Haskell-like to me I
think we should provide a Monad that has a run function that already
does all those tedious tasks for us.

The `GhcMod` monad is basically a wrapper around `RWST r w s IO` with an
instance for `GhcMonad`

Having a `Reader` allows us to pass `Options` to runGhcMod and not have
to worry about passing it everywhere, `Cradle` is also stored in the
reader environment on initialization.

Writer and State are just there for future use.

I've included a `toGhcMod` function that turns a `Ghc a` into a `GhcMod
a` this will make it easy to transition everyting to using the `GhcMod`
monad instead of `Ghc` without breaking the build or test suite for
extended periods of time.

Conflicts:
	ghc-mod.cabal
2014-05-04 04:57:38 +02:00
Daniel Gröber 096a56e660 Hide `catch` from Prelude 2014-05-04 04:57:38 +02:00
Daniel Gröber 4e4d27e62d Use `componentsConfigs` instead of `configDependencies`
`configDependencies` was added in Cabal-1.20 but we're using 1.18 on travis.
2014-05-04 04:57:38 +02:00
Daniel Gröber 9d9f66e942 Remove `Maybe` from `cabalConfigDependencies` and `fromInstalledPackageId` 2014-05-04 04:57:38 +02:00
Daniel Gröber 0c859294a3 Parse cabal `setup-config` to get depencencies 2014-05-03 15:36:10 +02:00
Daniel Gröber 19b56738c6 Add `withDirectory_` to Utils 2014-05-03 15:36:10 +02:00
Daniel Gröber aec46dbd51 Factor out `readProcess'` 2014-05-03 15:36:10 +02:00
Daniel Gröber 77605c6daf Add `fromInstalledPackageId` 2014-05-03 15:36:10 +02:00
Kazu Yamamoto 14f5768c90 doc. 2014-04-30 10:51:34 +09:00
Kazu Yamamoto 186485577d bootInfo as API. 2014-04-30 10:49:25 +09:00
Kazu Yamamoto d007fa817a better names. 2014-04-28 21:59:54 +09:00
Kazu Yamamoto a1aa44bdbb doc. 2014-04-28 21:51:39 +09:00
Kazu Yamamoto 913fb72911 ErrMsg -> Logger. 2014-04-28 21:47:08 +09:00
Kazu Yamamoto 0155cf5e5f style. 2014-04-28 21:43:24 +09:00
Kazu Yamamoto d68690bab0 removing LogReader. 2014-04-28 21:41:29 +09:00
Kazu Yamamoto 411a584bb8 using check finally. 2014-04-28 16:31:28 +09:00
Kazu Yamamoto 9bc25046e3 rescue old GHCs. 2014-04-28 14:36:55 +09:00
Kazu Yamamoto ae75872638 fixing regression. 2014-04-28 14:36:46 +09:00
Kazu Yamamoto 662842a085 clean up Gap. 2014-04-28 14:13:25 +09:00
Kazu Yamamoto adb4addd54 707 -> 708. 2014-04-28 14:04:18 +09:00
Kazu Yamamoto fc570551a2 withLogger handles errors. 2014-04-28 13:52:28 +09:00
Kazu Yamamoto 000076223f removing the third argument from initializeFlagsWithCradle. 2014-04-28 13:00:25 +09:00
Kazu Yamamoto 117d01a52a removing -Wall and -w:. 2014-04-28 12:52:09 +09:00
Kazu Yamamoto f413cda0fe one more try. 2014-04-28 11:26:06 +09:00
Kazu Yamamoto 6a7955679a rescue old GHCs. 2014-04-28 09:28:57 +09:00
Kazu Yamamoto 2733f94a52 rescue old GHCs. 2014-04-28 09:00:03 +09:00
Kazu Yamamoto 017d4cc22f don't use InteractiveImport for old GHCs.. 2014-04-27 22:48:24 +09:00
Kazu Yamamoto dede115731 defining withContext. 2014-04-27 21:26:03 +09:00
Kazu Yamamoto 64365807f9 refactoring. 2014-04-26 23:03:50 +09:00
Kazu Yamamoto 98d3c7028c refactoring. 2014-04-26 22:51:29 +09:00
Kazu Yamamoto 9c7c6a5cf9 refactoring. 2014-04-26 21:59:06 +09:00
Kazu Yamamoto 6b63cb7098 doc. 2014-04-26 20:24:47 +09:00
Kazu Yamamoto c45415a367 cleaning up check, splice flag and logger. 2014-04-26 17:54:15 +09:00
Kazu Yamamoto 74cde29ae0 refactoring setTargetFiles. 2014-04-26 14:38:49 +09:00
Kazu Yamamoto c1c0993b4a import DynFlag only in Gap. 2014-04-26 13:21:22 +09:00
Kazu Yamamoto c8fbdcfa2f Thanks to DeferTypeErrors, info/type can work even if the file contains errors. 2014-04-26 11:43:30 +09:00
Kazu Yamamoto 66a5123f8c rescue old Cabal which does not support bench. 2014-04-26 09:22:42 +09:00
Daniel Gröber 8ac39a3378 Add benchmarks to `cabalAllBuildInfo` 2014-04-25 20:48:20 +02:00
Kazu Yamamoto f50e5229c4 NG contains an error. 2014-04-25 11:08:29 +09:00
Kazu Yamamoto 13c5c2c5af doc. 2014-04-24 22:11:06 +09:00
Kazu Yamamoto 6cca65b11e ghc-mod find (#203). 2014-04-24 21:08:45 +09:00
Kazu Yamamoto 390c509144 find functions went to lib. 2014-04-24 17:02:50 +09:00
Kazu Yamamoto 4074c3d751 error handling for modules. 2014-04-24 12:51:43 +09:00
Kazu Yamamoto 93dadfef44 error handling for browse. 2014-04-24 12:45:47 +09:00
Kazu Yamamoto 2d1133ea8e exporting necessary types. 2014-04-24 12:17:50 +09:00
Kazu Yamamoto e49fef6765 setTargetFiles now loads files. 2014-04-24 12:15:59 +09:00
Kazu Yamamoto 0c1469e53c <package>:<module> style.
refactoring for #159.
2014-04-24 11:26:30 +09:00
Kazu Yamamoto 79946f9a3d removing withGHCDummyFile. 2014-04-23 16:37:24 +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
Kazu Yamamoto 44ece2dcb9 Merge branch 'master' of github.com:kazu-yamamoto/ghc-mod 2014-04-23 12:04:00 +09:00
Daniel Gröber c9ca3a6d76 Clean up DynFlags initialization 2014-04-23 04:04:41 +02:00
Daniel Gröber dc43d600dc Remove Alternative class constraint from withGhc 2014-04-23 03:43:53 +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 4764ff1acb ghc-modi boot. 2014-04-21 16:30:31 +09:00
Kazu Yamamoto 152b218813 hlint hack. 2014-04-21 16:12:30 +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 b2c2d1a443 cleaning up APIs. 2014-04-21 14:04:58 +09:00
Kazu Yamamoto 1006cd4eec APIs in Ghc monad now go to GHCMod.Ghc. 2014-04-21 12:51:56 +09:00
Kazu Yamamoto 2f55a19d49 cleaning up APIs. 2014-04-21 12:46:14 +09:00
Kazu Yamamoto df4dd97e48 ghc-mod debug does not need a file. 2014-04-21 11:31:15 +09:00
Kazu Yamamoto 12dac1f0a5 ghc-mod root does not need a file. 2014-04-21 11:22:39 +09:00
Kazu Yamamoto 756d17eaa2 -l for ghc-modi info. 2014-04-21 09:45:41 +09:00
Kazu Yamamoto e09b406ee8 ToString String and doctest. 2014-04-21 09:45:00 +09:00
Kazu Yamamoto 3c8fea85fb dropWhileEnd moves to Utils. 2014-04-19 15:20:16 +09:00
Kazu Yamamoto 82b6519935 removing suppress stuff. 2014-04-19 15:17:36 +09:00
Kazu Yamamoto 841c721928 -l for lint. 2014-04-19 08:36:35 +09:00
Kazu Yamamoto ab5e082e81 --quiet back (#226). 2014-04-19 08:26:30 +09:00
Daniel Gröber 8f3fb2a7d7 Only supress stderr on success 2014-04-18 13:22:31 +02:00
Kazu Yamamoto 4389dea800 -l for check. 2014-04-18 17:28:12 +09:00
Kazu Yamamoto 9a6c84410d close import. 2014-04-18 16:17:46 +09:00
Kazu Yamamoto f2081466fc Using Hidden also. (#223) 2014-04-18 16:12:21 +09:00
Kazu Yamamoto aecb9bc1e4 implementing suppressStdout/err. 2014-04-18 15:41:32 +09:00
Daniel Gröber bd2db5e98e Dont use Applicative ReadP instance 2014-04-18 04:00:01 +02: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
satoshi-murakumo 0eadfa91fd Fix windows tempfile handling
On Windows, `ghc-mod lint` fails with following message.

    ghc-mod: DeleteFile "<Ommit>\\Temp\\ghc-mod-hlint8464": permission denied <Ommit>

Perhaps, On Windows, GHC opens file exclusively.
So, we move `removeFile` to `finally`.
2014-04-16 22:41:53 +09:00
Kazu Yamamoto abb9ecd8ac style. 2014-04-16 11:59:00 +09:00
Kazu Yamamoto 145c27a129 hlint hack. 2014-04-16 11:52:49 +09:00
Kazu Yamamoto cd56e26b25 just style. 2014-04-16 11:50:31 +09:00
Kazu Yamamoto 697ad3722a removing warnings. 2014-04-16 11:32:36 +09:00
Kazu Yamamoto 2dc1eb645a Merge branch 'dev' of git://github.com/DanielG/ghc-mod into DanielG-dev 2014-04-16 11:24:39 +09:00
Daniel Gröber bb438feb83 User ghc's cProjectVersionInt to get version information 2014-04-16 01:57:52 +02:00
Daniel Gröber 7d75787ae3 Only add available package to ghc options
Fixes #185
2014-04-15 05:18:42 +02: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 8f5498c554 refactoring. 2014-04-11 14:59:31 +09:00
Kazu Yamamoto a0d559de61 clarifying Ghc and IO. 2014-04-11 13:14:45 +09:00
Kazu Yamamoto 998a43ce24 removing depanal. 2014-04-11 12:56:06 +09:00