Kazu Yamamoto
5abd75ea7d
fixing a infinite process loop.
2014-07-19 11:50:12 +09:00
Alejandro Serrano
6302d4882e
Merge remote-tracking branch 'kazu/master'
...
Conflicts:
Language/Haskell/GhcMod/Check.hs
Language/Haskell/GhcMod/FillSig.hs
Language/Haskell/GhcMod/GHCApi.hs
2014-07-18 17:12:52 +02:00
Alejandro Serrano
852d742796
Continue work on refinement
2014-07-18 17:09:02 +02:00
Kazu Yamamoto
0080f9b68c
Internal exports extra Monad stuff.
2014-07-18 15:42:05 +09:00
Kazu Yamamoto
30ddd655cd
export minimum Monad stuff from GhcMod.
2014-07-18 15:31:42 +09:00
Kazu Yamamoto
e1d9c3b881
clean up lookupSymbol.
2014-07-18 15:13:30 +09:00
Kazu Yamamoto
6d42354a5b
setMode and getMode
2014-07-18 14:55:21 +09:00
Kazu Yamamoto
7b079896b1
doc sectioning.
2014-07-18 14:55:08 +09:00
Kazu Yamamoto
26316262aa
converting GhcMonad to IOish.
2014-07-18 14:54:39 +09:00
Kazu Yamamoto
233f4cf05e
moving setFlags to Gap.
2014-07-18 11:09:11 +09:00
Kazu Yamamoto
0ce70ae22d
set Opt_SpecConstr just in case.
2014-07-18 10:52:57 +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
Daniel Gröber
e61aaed023
Make readProcess'
more generic
2014-07-17 15:52:33 +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
cf0df26560
Monad.hs is now exported by GhcMod.hs.
2014-07-17 14:30:42 +09:00
Kazu Yamamoto
74e84e89ac
deleting GhcMod.Ghc.
2014-07-17 14:04:28 +09:00
Alejandro Serrano
b21fa674ea
Merge remote-tracking branch 'kazu/master'
2014-07-17 06:59:29 +02:00
Alejandro Serrano
c3722f7a20
Include 'refine' again
2014-07-17 06:59:10 +02: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
Alejandro Serrano
57bd408785
Merge remote-tracking branch 'kazu/master'
...
Conflicts:
Language/Haskell/GhcMod.hs
Language/Haskell/GhcMod/Check.hs
Language/Haskell/GhcMod/FillSig.hs
Language/Haskell/GhcMod/GHCApi.hs
Language/Haskell/GhcMod/Ghc.hs
src/GHCMod.hs
2014-07-16 19:01:43 +02:00
Alejandro Serrano
49437d82d9
Initial work on refining variable
2014-07-16 18:20:52 +02:00
Kazu Yamamoto
204d449aef
set optimization level to 0 just in case.
2014-07-15 21:34:05 +09:00
Kazu Yamamoto
49284a64be
Uses HscNothing and falls back to HscInterpreted if necessary ( #205 )
...
Two Test case are fails but it is not fatal.
2014-07-15 17:20:35 +09:00
Kazu Yamamoto
25730e2a6c
trying to fix CI
2014-07-15 15:13:06 +09:00
Kazu Yamamoto
c87ea45488
adding #if to Monad.hs.
2014-07-15 14:45:41 +09:00
Kazu Yamamoto
0b71748708
moving #if to Gap.hs
2014-07-15 14:44:02 +09:00
Kazu Yamamoto
a7a02a3f4c
Bringing back MaybeT
...
This brings back a warning to be fixed.
2014-07-15 12:49:12 +09:00
Kazu Yamamoto
86829561ab
style only.
2014-07-15 12:41:10 +09:00
Kazu Yamamoto
84c3cec0f1
moving #if to Gap.hs.
2014-07-15 12:40:18 +09:00
Kazu Yamamoto
be9a67f02a
moving #if to Gap.hs.
2014-07-15 12:29:27 +09:00
Kazu Yamamoto
1524d2a43e
removing warnings.
2014-07-15 12:10:18 +09:00
Kazu Yamamoto
8495633dc8
explicitly specifying CompManager to ghcMode.
2014-07-15 12:06:07 +09:00
Kazu Yamamoto
89a4db2345
Merge pull request #288 from DanielG/dev-pkgs
...
Make `GhcMod` be `GhcModT (ErrorT IO)`
2014-07-15 11:49:10 +09:00
Daniel Gröber
686179f12b
Fix building with ghc < 7.8
2014-07-15 02:34:07 +02:00
Daniel Gröber
7474a1b652
Bring back GhcMod
but this time it's a GhcModT with an ErrorT inside
2014-07-15 01:04:06 +02: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
Kazu Yamamoto
d98cedc9c0
Merge pull request #287 from DanielG/dev-untangle
...
Untangle Monad.hs and GHCApi.hs and some other changes
2014-07-12 14:27:43 +09:00
Daniel Gröber
b6896a481a
Move initializeFlagsWithCradle
to Monad.hs
2014-07-12 03:33:04 +02:00
Daniel Gröber
503e8cbe06
Move DynFlag related functions from GHCApi to another module
2014-07-12 02:57:19 +02:00
Daniel Gröber
81c58585a2
Add functions for dealing with packages, modules and bindings to GHCApi
2014-07-11 10:43:51 +02:00
Daniel Gröber
73bf4cbc4e
Remove withGhc
and withGhc'
, they're not used anymore.
2014-07-11 10:41:43 +02:00
Alejandro Cabrera
daada0d27e
Fix GHC 7.8.3: MatchGroup now has 4 args
...
Rather than use a pattern match, this patch opts to explicitly extract
the fields of interest using where syntax. This keeps compatibility
across GHC 7.8 releases.
Ref: eeaea2df3f (diff-259092edcc59456f526cdef255c181d1L909)
2014-07-11 01:15:22 -04:00
Daniel Gröber
9f94bc863c
Add Module
type
2014-07-11 05:44:31 +02:00
Daniel Gröber
d818a64f6f
whitespace
2014-07-11 04:51:27 +02:00
Daniel Gröber
320b2243a2
Make GhcMod a special case of GhcModT
...
i.e. turn GhcMod into a monad transformer
2014-07-11 04:51:11 +02:00
Daniel Gröber
56ad1a3c8c
Control.Monad.Trans.MonadIO -> CoreMonad.MonadIO
...
they are different before ghc 7.8
2014-07-11 04:12:05 +02:00
Daniel Gröber
4b6a687bc1
Migrate the remaining parts of the exposed API to GhcMod a
2014-07-11 03:13:38 +02:00
Daniel Gröber
dc5ba6d00d
Add newGhcModEnv for allowing multiple active sessions
...
Conflicts:
Language/Haskell/GhcMod/Monad.hs
2014-07-10 21:14:47 +02:00
Alejandro Serrano
72679c619c
Show more relevant bindings in typed holes
2014-07-06 09:45:02 +02:00
Daniel Gröber
86a7f954e3
Add a comment discouraging the use of toGhcMod
in new code
2014-07-04 19:03:02 +02:00
Kazu Yamamoto
609ca52dee
Merge branch 'serras-master'
2014-07-03 17:04:00 +09:00
Kazu Yamamoto
f2e20e3279
comments.
2014-07-03 14:26:39 +09:00
Kazu Yamamoto
640140608e
layout.
2014-07-03 14:22:43 +09:00
Kazu Yamamoto
826d42f824
clean up macros.
2014-07-03 14:19:36 +09:00
Kazu Yamamoto
c13fdde2f8
importing Control.Monad.IO.Class explicity.
...
trying to resolve #277 .
2014-07-03 12:50:46 +09:00
Alejandro Serrano
df258843d9
Fix missing OccName import for ghc 7.4
2014-07-02 17:18:03 +02:00
Alejandro Serrano
ccc21461b2
Fix missing import for ghc 7.4
2014-07-02 17:00:10 +02:00
Alejandro Serrano
c707eb4e8c
Revert back change in MonadIO GhcMod
2014-07-01 17:56:59 +02:00
Alejandro Serrano
063ca80946
Fix compilation errors on ghc < 7.8
2014-07-01 17:43:13 +02:00
Alejandro Serrano
11acd93bf6
Try to fix for ghc < 7.8
2014-06-29 10:28:28 +02:00
Alejandro Serrano
c06ee75fbb
Fix building errors on ghc < 7.8 and tests
2014-06-28 23:18:49 +02:00
Alejandro Serrano
1b66f65b48
Move lots of stuff to GhcMod
...
- Generalize many signatures to GhcMonad m
2014-06-28 21:43:51 +02:00
Alejandro Serrano
871f72fca4
Remove code with extensions not present < ghc 7.8
2014-06-27 19:32:05 +02:00
Alejandro Serrano
edfe0c8ef3
Cleaning of case splitting code
2014-06-27 19:06:20 +02:00
Alejandro Serrano
2ab6991d95
Move code to new FillSig module
...
- Clean up a lot of code
2014-06-27 18:38:15 +02:00
Alejandro Serrano
3ef1979f67
Case splitting works in Emacs!
2014-06-26 21:17:22 +02:00
Alejandro Serrano
40cd5b7deb
Haskell part of case splitting working!
2014-06-25 18:09:24 +02:00
Alejandro Serrano
5fa536714f
Initial code generation working
...
- Added fallback with haskell-src-exts
2014-06-22 18:03:34 +02:00
Alejandro Serrano
90abb89a98
Inserting instance initial body now works :)
2014-06-22 11:10:23 +02:00
Alejandro Serrano
a45fb4c6f5
Move case split and sig. generation to own files
...
- Created SrcUtils module for shared functionality
2014-06-21 11:38:44 +02:00
Alejandro Serrano
8c56d2e3c8
Obtain better information for case split
2014-06-18 21:01:22 +02:00
Alejandro Serrano
5a968225c3
Initial skeleton for case split in elisp
2014-06-17 18:15:36 +02:00
Alejandro Serrano
8a63ae078b
Add missing cases for signatures
2014-06-16 22:10:01 +02:00
Alejandro Serrano
585c28f928
Initial implementation of instance completion
2014-06-11 22:01:43 +02:00
Alejandro Serrano
323c1b5471
Initial support for adding body from signature
2014-06-10 21:34:05 +02:00
Alejandro Serrano
cedf59ace7
Merge branch 'fix-typed-holes'
2014-06-10 17:09:46 +02:00
Alejandro Serrano
2f42d77b53
Add special cases for case splitting
2014-06-09 13:01:47 +02:00
Alejandro Serrano
c9b901f4f9
Fix problems with GHC's Typed Holes
2014-06-09 10:30:33 +02:00
Alejandro Serrano
0c445aa30f
Work on case split variable naming
2014-06-08 14:23:06 +02:00
Alejandro Serrano
6854d417c0
Initial implementation of case splitting
...
- It doesn't handle vars correctly yet
2014-06-08 12:33:13 +02:00
Daniel Gröber
241c7946fc
Revert "Fix tests for Cabal <= 1.16"
...
The problem the reverted commit tried to fix seems to have been just a
symptom of another root cause that was later fixed as the problem does
not seem to occur anymore even without this changeset also this
changeset broke cabal sandboxes with ghc < 7.8.
Fix #262
This reverts commit 8741323f5b
.
Conflicts:
Language/Haskell/GhcMod/GhcPkg.hs
2014-05-19 01:27:35 +02:00
Kazu Yamamoto
fcc3b46415
defining C macro if not defined.
2014-05-16 09:27:23 +09:00
Daniel Gröber
814ea60552
Types
doesn't export convert
anymore
2014-05-14 20:55:54 +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
Daniel Gröber
f1535efcf2
Ghc -> GhcMod: Browse, Check
2014-05-14 17:06:29 +02:00
Daniel Gröber
e5c6d3e472
Start migrating Ghc -> GhcMod monad
2014-05-14 17:06:29 +02:00
Kohei Suzuki
ef375668d1
Suppress empty line
2014-05-11 00:30:02 +09:00
Daniel Gröber
96a85fe953
Copy readMaybe/readEither from base >= 4.7 for backwards compatibility
2014-05-10 13:43:46 +02:00
Daniel Gröber
5492f0c5d1
Add license headers for code copied from Cabal
2014-05-10 13:43:27 +02:00
Daniel Gröber
f949e4be7a
Copy ComponentLocalBuildInfo from Cabal-1.18
...
This way `configDependencies` works even when the Cabal version used by
cabal-install is later than the one used by ghc-mod.
2014-05-10 02:04:09 +02:00
Daniel Gröber
13930a9d7d
Fix Cabal >= 1.18
2014-05-09 21:12:52 +02:00
Daniel Gröber
175635505d
Fix warnings
2014-05-09 20:44:33 +02:00
Daniel Gröber
8741323f5b
Fix tests for Cabal <= 1.16
2014-05-09 20:37:15 +02:00
Daniel Gröber
d1da6ab289
Make getSystemLibDir use GHC.Paths
instead of running ghc
2014-05-09 20:36:20 +02:00
Daniel Gröber
b8f9498f83
Fix reading of older Cabal setup-config
s
2014-05-09 20:35:13 +02:00
Kazu Yamamoto
2e3b172b0e
enabling -fno-warn- ( #246 ).
2014-05-09 23:45:34 +09:00
Daniel Gröber
fae4730ba5
Import HscTypes (HscEnv) with ghc <= 7.2
2014-05-08 13:14:44 +02:00
Daniel Gröber
a7b2c86985
Fall back to Cabal 1.16 format on runtime if extracting fails
2014-05-08 12:59:52 +02:00
Daniel Gröber
4c93819da8
Fix ghc-7.8
2014-05-08 11:50:51 +02:00
Daniel Gröber
7b8540add1
Add support for getting pkgDeps with Cabal <= 1.16
2014-05-08 11:32:40 +02:00
Kazu Yamamoto
b7d92417bc
HasDynFlags is provided after 7.6.
2014-05-08 17:01:01 +09:00
Kazu Yamamoto
cc3e728f03
fixing comment.
2014-05-08 16:51:15 +09:00
Daniel Gröber
61207c13d3
Add MonadIO instance for RWST
2014-05-08 08:36:18 +02:00
Kazu Yamamoto
8561e7b656
To break cyclic import, this patch makes GhcPkg.hs
independent from Monad.hs
(refactoring for #244 )
...
This removes `ghcPkgList`, `ghcPkgListEx` and `ghcPkgDbOpt`. I'm not sure
this is a right way to do.
2014-05-08 12:42:45 +09:00
Kazu Yamamoto
f199ea9e2e
removing warnings.
2014-05-08 10:49:40 +09:00
Daniel Gröber
5044cf7f56
Fix warnings
2014-05-05 09:43:14 +02:00
Daniel Gröber
635830b527
Fix #242 , ghcPkgList(Ex) on NixOS
2014-05-05 00:29:10 +02:00
Daniel Gröber
ea427d60ba
note: MonadIO class
2014-05-04 04:57:38 +02:00
Daniel Gröber
c50b4f5a38
ghc-mod deserves it's own monad
...
Having to call `findCradle` and `initializeFlagsWithCradle` everywhere
we interact with ghc-mod's API doesn't seem very Haskell-like to me I
think we should provide a Monad that has a run function that already
does all those tedious tasks for us.
The `GhcMod` monad is basically a wrapper around `RWST r w s IO` with an
instance for `GhcMonad`
Having a `Reader` allows us to pass `Options` to runGhcMod and not have
to worry about passing it everywhere, `Cradle` is also stored in the
reader environment on initialization.
Writer and State are just there for future use.
I've included a `toGhcMod` function that turns a `Ghc a` into a `GhcMod
a` this will make it easy to transition everyting to using the `GhcMod`
monad instead of `Ghc` without breaking the build or test suite for
extended periods of time.
Conflicts:
ghc-mod.cabal
2014-05-04 04:57:38 +02:00
Daniel Gröber
096a56e660
Hide catch
from Prelude
2014-05-04 04:57:38 +02:00
Daniel Gröber
4e4d27e62d
Use componentsConfigs
instead of configDependencies
...
`configDependencies` was added in Cabal-1.20 but we're using 1.18 on travis.
2014-05-04 04:57:38 +02:00
Daniel Gröber
9d9f66e942
Remove Maybe
from cabalConfigDependencies
and fromInstalledPackageId
2014-05-04 04:57:38 +02:00
Daniel Gröber
0c859294a3
Parse cabal setup-config
to get depencencies
2014-05-03 15:36:10 +02:00
Daniel Gröber
19b56738c6
Add withDirectory_
to Utils
2014-05-03 15:36:10 +02:00
Daniel Gröber
aec46dbd51
Factor out readProcess'
2014-05-03 15:36:10 +02:00
Daniel Gröber
77605c6daf
Add fromInstalledPackageId
2014-05-03 15:36:10 +02:00
Kazu Yamamoto
14f5768c90
doc.
2014-04-30 10:51:34 +09:00
Kazu Yamamoto
186485577d
bootInfo as API.
2014-04-30 10:49:25 +09:00
Kazu Yamamoto
d007fa817a
better names.
2014-04-28 21:59:54 +09:00
Kazu Yamamoto
a1aa44bdbb
doc.
2014-04-28 21:51:39 +09:00
Kazu Yamamoto
913fb72911
ErrMsg -> Logger.
2014-04-28 21:47:08 +09:00
Kazu Yamamoto
0155cf5e5f
style.
2014-04-28 21:43:24 +09:00
Kazu Yamamoto
d68690bab0
removing LogReader.
2014-04-28 21:41:29 +09:00
Kazu Yamamoto
411a584bb8
using check finally.
2014-04-28 16:31:28 +09:00
Kazu Yamamoto
9bc25046e3
rescue old GHCs.
2014-04-28 14:36:55 +09:00
Kazu Yamamoto
ae75872638
fixing regression.
2014-04-28 14:36:46 +09:00
Kazu Yamamoto
662842a085
clean up Gap.
2014-04-28 14:13:25 +09:00
Kazu Yamamoto
adb4addd54
707 -> 708.
2014-04-28 14:04:18 +09:00
Kazu Yamamoto
fc570551a2
withLogger handles errors.
2014-04-28 13:52:28 +09:00
Kazu Yamamoto
000076223f
removing the third argument from initializeFlagsWithCradle.
2014-04-28 13:00:25 +09:00
Kazu Yamamoto
117d01a52a
removing -Wall and -w:.
2014-04-28 12:52:09 +09:00
Kazu Yamamoto
f413cda0fe
one more try.
2014-04-28 11:26:06 +09:00
Kazu Yamamoto
6a7955679a
rescue old GHCs.
2014-04-28 09:28:57 +09:00
Kazu Yamamoto
2733f94a52
rescue old GHCs.
2014-04-28 09:00:03 +09:00
Kazu Yamamoto
017d4cc22f
don't use InteractiveImport for old GHCs..
2014-04-27 22:48:24 +09:00
Kazu Yamamoto
dede115731
defining withContext.
2014-04-27 21:26:03 +09:00
Kazu Yamamoto
64365807f9
refactoring.
2014-04-26 23:03:50 +09:00
Kazu Yamamoto
98d3c7028c
refactoring.
2014-04-26 22:51:29 +09:00
Kazu Yamamoto
9c7c6a5cf9
refactoring.
2014-04-26 21:59:06 +09:00
Kazu Yamamoto
6b63cb7098
doc.
2014-04-26 20:24:47 +09:00
Kazu Yamamoto
c45415a367
cleaning up check, splice flag and logger.
2014-04-26 17:54:15 +09:00
Kazu Yamamoto
74cde29ae0
refactoring setTargetFiles.
2014-04-26 14:38:49 +09:00
Kazu Yamamoto
c1c0993b4a
import DynFlag only in Gap.
2014-04-26 13:21:22 +09:00
Kazu Yamamoto
c8fbdcfa2f
Thanks to DeferTypeErrors, info/type can work even if the file contains errors.
2014-04-26 11:43:30 +09:00