Commit Graph

51 Commits

Author SHA1 Message Date
Daniel Gröber
0b2a3458fd Move stack code into seperate module 2015-09-15 05:25:54 +02:00
Daniel Gröber
55f278853a Fix tests more 2015-09-14 07:11:45 +02:00
Daniel Gröber
ba14e1790c Fix tests 2015-09-14 05:59:38 +02:00
Daniel Gröber
211b957451 Fix race condition in stack support code 2015-09-11 03:52:28 +02:00
Daniel Gröber
41de8b8b2e Sandwich new Monad layer GmOutT into transformer stack
This way we can have access to some options pre Cradle setup which
should fix the output interleaving problems I was observing.
2015-09-01 10:32:27 +02:00
Daniel Gröber
0b65487e50 Stderr output pre-GhcModT for stack cradle 2015-08-31 07:49:06 +02:00
Daniel Gröber
85722ab6f2 Cleanup 2015-08-24 15:11:05 +02:00
Daniel Gröber
c5db06af0f Fix missing liftIO 2015-08-21 04:21:27 +02:00
Daniel Gröber
19e62b0a6a Inhibit stack support when dist/setup-config exists 2015-08-20 08:43:36 +02:00
Daniel Gröber
18a8c67d39 Take sandbox cfg into account for caches 2015-08-19 09:18:10 +02:00
Daniel Gröber
78bdf86a95 Fix all the stack related things 2015-08-19 09:17:41 +02:00
scturtle
a285b42206 Refactor the hard-coding "dist" 2015-08-19 09:17:30 +02:00
scturtle
89c3faea05 Initilize test for stack project 2015-08-19 09:17:11 +02:00
scturtle
320b404a8c Yet another try to support Stack. 2015-08-19 09:17:11 +02:00
Daniel Gröber
28f06e035d Cleanup project type handling 2015-08-12 09:25:13 +02:00
Daniel Gröber
8439f12cb0 Let Cabal determine the package-db stack 2015-08-07 07:31:08 +02:00
Daniel Gröber
f023d939e2 Fix GHC 7.10 warnings 2015-08-03 05:46:51 +02:00
Daniel Gröber
14c097530e Fix stray tempdir 2015-06-02 12:27:11 +02:00
Daniel Vigovszky
3b7d51d25a Removed unused function 2015-04-24 10:41:39 +02:00
Daniel Vigovszky
5d9d6f5630 Custom cradle support 2015-04-23 17:25:45 +02: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
417cacbf81 Fix finding sandbox in sandbox only projects 2015-02-08 12:43:35 +01:00
Daniel Gröber
9a8a3651d0 Fix findCabalFile 2014-11-03 00:45:27 +01:00
Daniel Gröber
2af3383fad Really fix newTempDir on Windows 2014-11-02 19:02:05 +01:00
Daniel Gröber
37af8e368d Refactoring World, etc. and fix #387 2014-11-02 01:19:27 +01:00
Daniel Gröber
1797a53800 Fix newTempDir on Windows 2014-10-31 12:42:03 +01:00
Daniel Gröber
9ac128aa6f Fix #387, Pattern match failure in GhcPkg 2014-10-30 01:10:56 +01:00
Kazu Yamamoto
d045001eb7 Letting "ghc-mod dumpsym" work on non-cabal directories. 2014-08-20 15:31:26 +09:00
Kazu Yamamoto
cffa7463eb adopting hlint's suggestions. 2014-07-17 17:16:44 +09:00
Daniel Gröber
dc5ba6d00d Add newGhcModEnv for allowing multiple active sessions
Conflicts:
	Language/Haskell/GhcMod/Monad.hs
2014-07-10 21:14:47 +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
Kazu Yamamoto
145c27a129 hlint hack. 2014-04-16 11:52:49 +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
187f718de0 hlint hack. 2014-03-27 16:35:41 +09:00
Kazu Yamamoto
426917fc44 close import. 2014-03-27 15:21:18 +09:00
Kazu Yamamoto
6e4d073c7d using dropWhileEnd (#193). 2014-03-26 15:38:02 +09:00
Kazu Yamamoto
a25736f149 Revert "Expose packages in sandbox with their ids"
This reverts commit 46492a19b0.
2014-02-01 13:44:40 +09:00
Naohiro Aota
46492a19b0 Expose packages in sandbox with their ids
This commit implement scaning a package db directory to collect package
id

If you installed a package both in a sandbox and globally, global
package may be selected even if there's a package in a sandbox, which is
different behavior from cabal sandbox.

e.g. when you have fast-logger-2.0 globally and fast-logger-0.3.3 in a
sandbox:

(Without patch)
$ ghc-mod check Foundation.hs
Foundation.hs:12:31:Module `System.Log.FastLogger' does not export `Logger'

(With patch)
$ ghc-mod check Foundation.hs
2014-01-30 21:21:40 +09:00
Naohiro Aota
04022ab0ac Add test to check package id extraction
This commit add a failing test to check extracting package id. The test will
fail with the following output for now:

1) Cradle.getPackageDbPackages find a config file and extracts packages with their ids
expected: [("template-haskell",Just "template-haskell-2.8.0.0-32d4f24abdbb6bf41272b183b2e23e9c")]
 but got: []
2014-01-30 21:18:45 +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
Kazu Yamamoto
a94b1a3b5a fixing tests. 2013-09-21 18:37:33 +09:00
Kazu Yamamoto
c78d708c1c Introducing strict getPackageDbDir. 2013-09-21 15:10:43 +09:00
Kazu Yamamoto
5f0fcd0442 getCompilerOptions handles package-db options. 2013-09-20 17:15:41 +09:00
Kazu Yamamoto
39bccf8b92 adding doc to findCradle. 2013-09-20 15:53:51 +09:00
Kazu Yamamoto
49791fb6ea Supporting sandbox sharing.
Braking backword compatibility of findCradle.
2013-09-20 15:48:50 +09:00
Kazu Yamamoto
318b376b30 Supporting the sandbox of Cabal 1.18.0.
Support for cabal-dev was obsoleted.
2013-09-05 16:38:17 +09:00
Kazu Yamamoto
5e53841451 improving doc. 2013-09-05 14:35:28 +09:00
Kazu Yamamoto
089d490607 writing docs. 2013-05-20 14:28:56 +09:00