Commit Graph

781 Commits

Author SHA1 Message Date
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
Daniel Gröber
443650705c Fix #532, Use first component in cabal file for dangling modules in cabal projects 2015-08-12 10:44:41 +02:00
Daniel Gröber
28f06e035d Cleanup project type handling 2015-08-12 09:25:13 +02:00
Daniel Gröber
a94d8977a9 Fix ghc-modi not working in non-cabal projects 2015-08-12 09:04:35 +02:00
Daniel Gröber
9b286cc4e1 Fix cabal-helper >= 0.5 2015-08-12 09:04:09 +02:00
Daniel Gröber
11243e5304 Add in-memory caching otherwise everything is slow 2015-08-11 07:38:25 +02:00