Commit Graph

60 Commits

Author SHA1 Message Date
Nikolay Yakimov 1559a91a84 Cache non-interactive find results in distdir 2016-01-27 02:09:17 +03:00
Daniel Gröber 566dbebe29 Merge release-5.5.0.0 into master (using imerge) 2016-01-17 21:03:28 +01:00
Daniel Gröber d29c882cd6 Fix warning with 7.10 2016-01-17 20:19:08 +01:00
Daniel Gröber 363aa10fcd Fix GHC<7.10 2016-01-10 00:25:02 +01:00
Daniel Gröber bae40cb614 Better field names for SymbolDb 2016-01-09 22:23:20 +01:00
Nikolay Yakimov 68689bfcfd Use Binary for 'find' communication channel 2016-01-09 17:27:21 +03:00
Daniel Gröber 89b1ac2d1e Optimize dumpsym maximum memory usage
This took ages to track down. Turns out GHC keeps references to all
loaded ModIfaces in the PackageInterfaceTable in ExternalPackageState
for caching. ExternalPackageState is in an IORef in HscEnv so
overwriting that with a copy from right after init improves things a
bit. Next I use unsafeInterleaveIO to load the ModIfaces as we serialize
the symbol table rather than before thus reducing the amount of memory
needed even more.
2016-01-08 16:58:40 +01:00
Nikolay Yakimov da1c1bebb2 Use stdout pipe instead of temp.files in Find 2016-01-05 13:44:17 +03:00
Daniel Gröber 254f6a9a73 Get rid of landmine 2016-01-04 06:05:40 +01:00
Daniel Gröber ec5a362179 Add AsyncSymbolDb to fix runGhcMod race condition for good 2016-01-04 05:27:31 +01:00
Daniel Gröber 604f2c18b0 Fix upper bounds on binary for ghc<7.10 2015-11-26 14:52:25 +01:00
Daniel Gröber 623cddd8ca Fix `find` being slow on legacy-interactive 2015-08-14 06:48:56 +02:00
Daniel Gröber 0b5de23ac9 Wrap dumpsym in stderr mangling readProc as well just in case 2015-08-14 03:51:50 +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
Sergey Vinokurov 7b6eb55b11 Transform ModuleString and Expression type synonyms into newtypes 2015-06-02 10:43:29 +03:00
Sergey Vinokurov 4a9d578681 Improve style 2015-06-02 10:43:29 +03:00
Sergey Vinokurov 57e2c112dc Use package dbs defined by current cradle when dealing with SymbolDBs 2015-06-02 10:43:27 +03:00
Daniel Gröber 01dde80385 Bring test suite up to date 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 844bdea3db Move `symbolCache` to PathsAndFiles 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
Daniel Gröber 37af8e368d Refactoring World, etc. and fix #387 2014-11-02 01:19:27 +01:00
Daniel Gröber 9ac128aa6f Fix #387, Pattern match failure in GhcPkg 2014-10-30 01:10:56 +01:00
Daniel Gröber ab7059d5e4 Merge remote-tracking branch 'upstream/no-set'
Conflicts:
	Language/Haskell/GhcMod/Find.hs
2014-10-03 21:39:20 +02:00
Kazu Yamamoto c4929c54af getConfig runs "cabal configure" first if setup-config is invalid. 2014-09-23 21:28:03 +09:00
Kazu Yamamoto d831d6aa59 moving PackageDb stuff to GhcPkg. 2014-09-23 13:47:32 +09:00
Kazu Yamamoto e8988c2f02 ghc-modi's "find" now catches up if packageDb is updated. 2014-09-20 12:25:46 +09: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 2875275fc0 hlint suggestions. 2014-08-14 11:11:02 +09:00
Kazu Yamamoto 02ce2d4a1d removing warnings. 2014-08-14 10:01:35 +09:00
Daniel Gröber 4b05c20205 Add missing signature 2014-08-13 19:28:08 +02:00
Daniel Gröber 2a1fd28771 docs for `ghcModExecutable` 2014-08-12 21:21:08 +02:00
Daniel Gröber 4def562179 Add version number to symbol table cache filename 2014-08-12 21:20:36 +02:00
Daniel Gröber 9e4f1c9057 add note 2014-08-06 19:38:42 +02:00
Daniel Gröber c98eb23bdf Clean up getSymbolTable a bit more 2014-08-06 19:38:42 +02:00
Daniel Gröber 459106a6d5 Clean up Find.hs a bit 2014-08-06 19:38:42 +02:00
Daniel Gröber ba9c70dff7 Fall back to assuming ghc-mid is on PATH when exeutable name is not available 2014-07-20 23:50:32 +02:00
Kazu Yamamoto 5abd75ea7d fixing a infinite process loop. 2014-07-19 11:50:12 +09:00
Kazu Yamamoto 0080f9b68c Internal exports extra Monad stuff. 2014-07-18 15:42:05 +09:00
Kazu Yamamoto e1d9c3b881 clean up lookupSymbol. 2014-07-18 15:13:30 +09:00
Daniel Gröber 3c04e78ba7 Don't rely on ghc-mod being in PATH 2014-07-17 16:17:17 +02:00
Daniel Gröber 3c1b560068 Short circuit export list when compiling spec 2014-07-17 16:15:02 +02:00
Daniel Gröber 4f0f5f09a6 Remove `type Db` it's only used once and makes things less clear 2014-07-17 15:54:59 +02:00
Kazu Yamamoto cffa7463eb adopting hlint's suggestions. 2014-07-17 17:16:44 +09:00
Kazu Yamamoto 05f45f1d36 adding error handling. 2014-07-17 14:40:35 +09:00
Kazu Yamamoto 74e84e89ac deleting GhcMod.Ghc. 2014-07-17 14:04:28 +09:00
Kazu Yamamoto 409bc99f10 error handling for loadSymbolDb. 2014-07-17 12:37:38 +09:00
Kazu Yamamoto cee1b83daa the first step to create SymbolDB via a file. 2014-07-17 11:57:19 +09:00