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
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
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
8324dd96ae
Don't expose Convert
2014-05-14 18:54:56 +02:00
Daniel Gröber
80e2761f2f
Ghc->GhcMod: finish Browse, Check
2014-05-14 18:05:40 +02:00
Daniel Gröber
ebfb740a2e
Move convert
to it's own module.
2014-05-14 17:06:30 +02:00
Kazu Yamamoto
14f5768c90
doc.
2014-04-30 10:51:34 +09:00
Kazu Yamamoto
000076223f
removing the third argument from initializeFlagsWithCradle.
2014-04-28 13:00:25 +09:00
Kazu Yamamoto
c45415a367
cleaning up check, splice flag and logger.
2014-04-26 17:54:15 +09:00