Commit Graph

786 Commits

Author SHA1 Message Date
Nikolay Yakimov
3700fa00e6 Fix dist/setup-config path in stack cradle init. 2016-01-08 19:17:43 +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
Nikolay Yakimov
dfa0e7e31e Use new hlint API 2016-01-05 11:34:38 +03:00
Daniel Gröber
73863e0b00 Remove GMEWrongWorkingDirectory constructor 2016-01-04 21:44:49 +01:00
Daniel Gröber
7bbaa35f56 Reinstate cwd setup, this time with locking 2016-01-04 20:15:55 +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
d2f7df21df Fix instances for GHC<7.8 2016-01-04 01:23:46 +01:00
Daniel Gröber
67c9538f30 Fix 7.6 warning 2016-01-04 01:23:46 +01:00
Daniel Gröber
699ce178cb Split L.H.GM.Monad.Types module 2016-01-04 01:23:46 +01:00
Daniel Gröber
13632817a4 Make tempdirs less annoying 2015-12-30 14:24:56 +01:00
Daniel Gröber
cee8a29a54 Don't need type errors here 2015-12-28 13:59:59 +01:00
Daniel Gröber
28a0d26fe3 Fix GHC<7.10 2015-12-28 13:57:24 +01:00
Daniel Gröber
7374f1ba17 Add 'test' command for running QuickCheck props 2015-12-28 13:57:24 +01:00
Nikolay Yakimov
23416e9aeb Better error reporting, cleanup 2015-12-20 15:02:31 +03:00
Nikolay Yakimov
1c45404f74 Merge remote-tracking branch 'upstream/master' into interactive-shell-syntax 2015-12-20 13:55:22 +03:00
Nikolay Yakimov
63f05508b8 FileMapping library docs 2015-12-20 13:45:51 +03:00
Daniel Gröber
6de02ea470 Cleanup loadTarget logic 2015-12-16 00:24:14 +01:00
Nikolay Yakimov
cdaf586941 Haddock documentation 2015-12-07 19:57:33 +03:00
Nikolay Yakimov
b2fb54a356 Fix tests, move option records to Types module 2015-12-06 00:56:19 +03:00
Nikolay Yakimov
ad16b739eb Optparse-applicative 2015-12-05 23:55:12 +03:00
Nicolas Rolland
bff86be69f some refactoring 2015-11-27 11:15:25 +01:00
Nicolas Rolland
e1d2de96c8 fixing tests for logging 2015-11-27 11:15:25 +01:00
Nicolas Rolland
1a8020774e adding Get logging level 2015-11-27 11:15:25 +01:00
Nicolas Rolland
d0ea69b61b handling logging level 2015-11-27 11:15:25 +01:00
Nicolas Rolland
06323ac20f adding logging to findCradle methods 2015-11-27 11:15:25 +01:00
Daniel Gröber
16c69b2743 Disable stack support for ghc <7.8 2015-11-26 19:21:15 +01:00
Daniel Gröber
1c0c97bdbb Typo 2015-11-26 16:31:53 +01:00
Daniel Gröber
0d97646694 Remove some redundant calls to withCabal
`chCached` already handles that
2015-11-26 16:19:50 +01:00
Daniel Gröber
412cee9abf Log exceptions in browse 2015-11-26 16:19:11 +01:00
Daniel Gröber
81a2d29cdc Fix ghc-7.4 build 2015-11-26 15:30:26 +01:00
Daniel Gröber
6f0b8b00d1 Add some missing copyright boilerplate 2015-11-26 15:03:14 +01:00
Daniel Gröber
4963b782d9 Don't fiddle with state in resolvedComps cacheAction
The general in-memory caching that was added to `cached` handles that
now making this fiddly workaround redundant.
2015-11-26 14:52:25 +01:00
Daniel Gröber
a12a7fabc0 Invalidate components cache when setup-config changed (Fix #684) 2015-11-26 14:52:25 +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
8568a6785c Check for in-memory cache invalidation (Fix #683) 2015-11-18 21:41:19 +01:00
Daniel Gröber
82f33cdbd7 Add modtime to on-disk and memory cache 2015-11-18 20:58:29 +01:00
Daniel Gröber
0c3587f388 Typo 2015-11-18 20:54:12 +01:00
Daniel Gröber
b923e2662d Switch to using binary instead of cereal. 2015-11-18 20:51:37 +01:00
Daniel Gröber
ca2992d83c Remove redundant constraint from runGhcModT 2015-10-29 18:52:51 +01:00
Daniel Gröber
6b2246ebd6 Dead code be gone 2015-09-30 11:27:19 +02:00
Daniel Gröber
19b3de3569 Preserve cabal flags when reconfiguring project 2015-09-24 05:27:20 +02:00
Daniel Gröber
2549bba7b8 Fix yesterday's fix
we were invoking cabal-helper too early
2015-09-24 04:49:49 +02:00
Nikolay Yakimov
0d42b66fc3 Fix logging for file mapping when temp dir is proj. root subdir 2015-09-24 03:20:07 +02:00
Daniel Gröber
df455a3618 Fix missing autogen files when dist/setup-config already exists (Issue #621) 2015-09-23 12:02:03 +02:00
Daniel Gröber
0fde762500 Fix ghc<7.10 2015-09-16 05:40:53 +02:00
Daniel Gröber
46891f13ee Fix #603, stack path output can have missing values 2015-09-16 05:18:53 +02:00
Daniel Gröber
24050e5af3 Fix warnings 2015-09-16 05:18:44 +02:00
Daniel Gröber
380acdaee0 Only use debugLogger when loglevel >= GmDebug 2015-09-16 05:13:20 +02:00
Daniel Gröber
413bac085d Fix sharing stdout Chan with multiple threads 2015-09-16 05:13:20 +02:00
Daniel Gröber
7e565df923 Fix stdoutGateway line buffering 2015-09-16 05:13:20 +02:00
Daniel Gröber
2c0d5af5e9 Fix warnings 2015-09-16 05:13:20 +02:00
Daniel Gröber
5af2c939b3 Cleanup some dead code 2015-09-15 05:25:54 +02:00
Daniel Gröber
0b2a3458fd Move stack code into seperate module 2015-09-15 05:25:54 +02:00
Daniel Gröber
5b02cc1bb0 Make sure stdoutGateway is flushed before exiting. 2015-09-14 10:12:01 +02:00
Daniel Gröber
56902bfe2d Don't mess with cwd, causes too many race conditions
I would just fork() but we have to support WinDOS, gah.
2015-09-14 10:12:01 +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
4536ac545d Make sure stdoutGateway is running during findCradle' 2015-09-14 05:40:32 +02:00
Daniel Gröber
64379a7c56 Actually update world in legacyInteractiveLoop 2015-09-11 09:53:24 +02:00
Daniel Gröber
ce1d9d1da1 Fix ghc<7.10 2015-09-11 05:45:59 +02:00
Daniel Gröber
acf78f2500 Remove stray debug code 2015-09-11 03:57:54 +02:00
Daniel Gröber
211b957451 Fix race condition in stack support code 2015-09-11 03:52:28 +02:00
Daniel Gröber
12d65ba11f Fix some warnings 2015-09-11 03:52:28 +02:00
Daniel Gröber
e92bd0af48 Disable obj loading for targets (Fix #554) 2015-09-10 07:48:13 +02:00
Daniel Gröber
6ad71af001 Don't swallow ghc's verbose output 2015-09-08 06:44:02 +02:00
Daniel Gröber
dbf215a35b Fix tests, this time, this time for sure. 2015-09-08 06:42:32 +02:00
Daniel Gröber
34fedd8ad3 Missing source file 2015-09-08 06:19:58 +02:00
Daniel Gröber
d400c8f389 Fix missing makeAbsolute 2015-09-08 05:20:26 +02:00
Daniel Gröber
f06511bff1 Support multi-package stack projects 2015-09-08 03:54:29 +02:00
Daniel Gröber
5713fd9908 Fix custom package-db stack for non Cabal projects 2015-09-07 07:20:16 +02:00
Daniel Gröber
be293db503 Update for cabal-helper >= 0.6 2015-09-07 05:15:35 +02:00
Daniel Gröber
8fea4ac426 Fix doc command not using right ghc-pkg exe 2015-09-02 07:19:11 +02:00
Daniel Gröber
86c157d1d2 Add some more debug output 2015-09-02 05:30:00 +02:00
Daniel Gröber
996016ac7b Fix wrong stack version lower bound in log message 2015-09-02 05:02:13 +02:00
Daniel Gröber
a8c111cda3 Write cabal_macros.h on reconfigure when using stack 2015-09-02 04:57:25 +02:00
Daniel Gröber
82c5069cd8 Fix doctest 2015-09-02 04:00:30 +02:00
Daniel Gröber
a0a7433212 Fix <7.10 2015-09-01 10:45:15 +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
2af1da960b Also catch exceptions thrown in IO 2015-09-01 10:29:21 +02:00
Daniel Gröber
899d583549 error -> throw $ GMEProcess 2015-09-01 10:27:41 +02:00
Daniel Gröber
4aa75818d8 Fix tests 2015-08-31 08:32:31 +02:00
Daniel Gröber
0b65487e50 Stderr output pre-GhcModT for stack cradle 2015-08-31 07:49:06 +02:00
Daniel Gröber
2a0414f368 Pass stack ghc paths down to cabal-helper 2015-08-31 04:17:33 +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
473f1e09c7 Rename withContext -> withInteractiveContext 2015-08-21 04:12:53 +02:00
Daniel Gröber
eceb34c8af Merge branch 'master' of github.com:kazu-yamamoto/ghc-mod 2015-08-21 04:12:29 +02:00
Daniel Gröber
19e62b0a6a Inhibit stack support when dist/setup-config exists 2015-08-20 08:43:36 +02:00
Kazu Yamamoto
797aef2a09 Merge remote-tracking branch 'origin/fix-loop' 2015-08-20 09:49:06 +09:00
Daniel Gröber
b25dbc2416 Merge branch 'stack-support' 2015-08-20 02:14:55 +02:00
Daniel Gröber
91f0c50b20 Merge branch 'file-redirection-2' of https://github.com/atom-haskell/ghc-mod 2015-08-20 02:10:05 +02:00
Daniel Gröber
23a48aa6c7 Use cabal-helper for stack 2015-08-19 09:18:10 +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
d660e7cd85 add 'StackProject' around 2015-08-19 09:17:30 +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
e360f7eb44 Fix older GHCs 2015-08-19 09:05:57 +02:00
Kazu Yamamoto
b7cea06a52 Flushing stdout to solve infinite loop (#542). 2015-08-19 15:02:00 +09:00
Alan Zimmerman
e198f68f2a Rearrange loadTargets code.
The loadTargets function is exposed via the Internal module for use by
external programmes, such as HaRe.

Re-arrange to code so that it can still be called with a list of string
targets, as it was before.
2015-08-19 03:34:01 +02:00
Daniel Gröber
bb3a948912 Fix over-qualified error messages (Fix #551) 2015-08-18 09:26:53 +02:00
Daniel Gröber
90b1e452e2 Some pretty printing "improvements" (hopefully) 2015-08-18 04:54:10 +02:00
Daniel Gröber
f7149ba23f Cleanup 2015-08-18 04:50:51 +02:00
Daniel Gröber
dd82cea996 Demote no-component-assignment warning to debug, Fix #552 2015-08-18 04:34:39 +02:00
Daniel Gröber
a383f46939 Fix nasty module graph caching issue
resolvedComponentsCache did not consider outgoing edges in the module
graph when computing the set of dependent files

i.e. for `A -> B, A -> C` `flatten` would give [B,C] instead of [A,B,C]
2015-08-18 04:27:02 +02:00
Anthony Cowley
78c5cea161 DeferErrors implies DeferTypedHoles in GHC >= 7.10
The Opt_DeferErrors flag should imply Opt_DeferTypedHoles. The proper
API for setting these flags that implements such implications is
unfortunately not exposed by GHC.
2015-08-17 15:14:44 -04:00
Alejandro Serrano
45f8194c0c Set -fdefer-types-holes in case split 2015-08-17 14:54:10 -04:00
Nikolay Yakimov
3dea19b270 Fix getCanonicalFileNameSafe to work on all relevant ghc versions 2015-08-17 10:39:49 +03:00
Nikolay Yakimov
0d78ee4096 getCanonicalFileNameSafe is now best-effort canonicalizatoin
Canonicalizes longest init of path possible, and appends rest verbatim
2015-08-17 08:43:34 +03:00
Daniel Gröber
1f14ff08c6 Log exceptions as GmException 2015-08-17 06:52:56 +02:00
Nikolay Yakimov
ab19da08db Removed redundant imports 2015-08-16 23:42:20 +03:00
Nikolay Yakimov
8ef8a86397 Unload mapped files before loading 2015-08-16 23:38:32 +03:00
Nikolay Yakimov
a5dae2a82d Drop memory-mapped files, since ghc doesn't play well with those
All files are now "redirected", either user-created, or created by ghc-mod itself.
2015-08-16 23:20:00 +03:00
Nikolay Yakimov
654b172f5e Add FileMapping support to HMG/preprocessFile
Post-rebase update
2015-08-16 18:22:27 +03:00
Nikolay Yakimov
d276b9bb7f Remove redundant imports 2015-08-15 21:26:33 +03:00
Nikolay Yakimov
c96abfc422 Drop loadMappedFiles and move all loading code to progMain 2015-08-15 21:18:57 +03:00
Nikolay Yakimov
a9b98e7128 [File-map] Export more user-friendly functions in public API 2015-08-15 21:08:24 +03:00
Nikolay Yakimov
72c43a9210 Rename GmPprEnv fields rs* → gpe* 2015-08-15 21:07:36 +03:00
Nikolay Yakimov
e7329a9d24 Replace redirected filenames in info. 2015-08-15 21:07:36 +03:00
Nikolay Yakimov
8f931eb928 Fix problem with fileModSummary 2015-08-15 21:07:35 +03:00
Nikolay Yakimov
c5f71933f6 Canonicalize FilePath before lookup in withMappedFile 2015-08-15 21:06:57 +03:00
Nikolay Yakimov
438b15463e Move getCanonicalFileName(Safe) to Utils module 2015-08-15 21:06:57 +03:00
Nikolay Yakimov
267edfebe3 Try best-guess tactic if file to be redirected doesn't exist 2015-08-15 21:06:57 +03:00
Nikolay Yakimov
a0cf585939 Bugfix: canonicalize filename before trying to unload 2015-08-15 21:06:57 +03:00
Nikolay Yakimov
31020c4112 Move withMappedFile to Language.Haskell.GhcMod.Utils 2015-08-15 21:06:57 +03:00
Nikolay Yakimov
d405ce7efa Make linting work with mapped files 2015-08-15 21:06:57 +03:00
Nikolay Yakimov
5b0cca0353 Added withMappedFile utility function
Works pretty much as `withTempFile`, except looks
mapping up and uses temp. file only when necessary.
2015-08-15 21:06:57 +03:00
Nikolay Yakimov
d3b1bf125b Move reading source from stdin to frontend 2015-08-15 21:06:25 +03:00
Nikolay Yakimov
67102c92b8 Use cradleTempDir instead of getTemporaryDirectory in HMG 2015-08-15 21:02:42 +03:00
Nikolay Yakimov
de5ff87f19 Don't use infix call for type ctor 2015-08-15 20:58:45 +03:00
Nikolay Yakimov
1efacbef88 Use less generic name for reader monad/state in Logger 2015-08-15 20:58:45 +03:00
Nikolay Yakimov
2504f643e9 Replace mapped names with original ones in output 2015-08-15 20:58:45 +03:00
Nikolay Yakimov
f8a0325617 Load all mapped targets 2015-08-15 20:41:10 +03:00
Nikolay Yakimov
e70988e15f Use MaybeT instead of maybe (return Nothing) 2015-08-15 20:41:10 +03:00
Nikolay Yakimov
e72d72eb86 Workaround for GHC 7.4 bugs 2015-08-15 20:41:10 +03:00
Nikolay Yakimov
3790fca20b Initial support for file redirection
Rewrite, taking discussion into consideration
2015-08-15 20:41:10 +03:00
Daniel Gröber
585a9ef425 Fix doc in non-cabal projects
..man those non-cabal projects are really getting me down. Who uses
those anwayways ;)
2015-08-14 10:30:42 +02:00
Daniel Gröber
623cddd8ca Fix find being slow on legacy-interactive 2015-08-14 06:48:56 +02:00
Daniel Gröber
887ab3c599 Don't try to create dist/ in non cabal projects, duh 2015-08-14 06:32:20 +02:00
Daniel Gröber
55bf578b87 Put line-prefix'es on exceptions too 2015-08-14 05:57:33 +02:00
Daniel Gröber
f998c63c73 Fix prepareCabalHelper when dist/ doesn't exist yet 2015-08-14 04:28:22 +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
cbfa26eb16 Make sure cabal-helper is ready before invoking dumpsym 2015-08-14 03:48:29 +02:00
Daniel Gröber
312a8c81fb Merge branch 'HaRe' of https://github.com/alanz/ghc-mod 2015-08-13 10:17:14 +02:00
Alan Zimmerman
eafde94913 Expose functions for integration with HaRe 2015-08-13 09:49:51 +02:00
Daniel Gröber
09c3c5603c Fix missing newlines 2015-08-13 09:01:58 +02:00
Daniel Gröber
2806f702d9 Start implementing line-prefix stuff
readProcess wrapper still missing from CabalHelper
2015-08-13 06:47:12 +02:00