Commit Graph

780 Commits

Author SHA1 Message Date
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 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