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
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
Daniel Gröber
05360e0660
Fix typo
2015-08-11 06:35:07 +02:00
Daniel Gröber
bad431a758
Bump cabal-helper depdendency
2015-08-10 09:07:41 +02:00
Daniel Gröber
bb22b643e9
Add version header to caches
2015-08-10 06:44:34 +02:00
Daniel Gröber
0abe1d6a53
Fix warning
2015-08-07 07:33:04 +02:00
Daniel Gröber
5fdaa6adea
Merge branch 'master' of https://github.com/meditans/ghc-mod
2015-08-07 07:32:26 +02:00
Daniel Gröber
8439f12cb0
Let Cabal determine the package-db stack
2015-08-07 07:31:08 +02:00
meditans
31d85a27b4
Added logging in refine
and auto
handlers
2015-08-06 11:49:01 +02:00
Daniel Gröber
f61dd0a9e6
Fix re-init of ghc-modi session after environment change
...
Using `dropSession` instead of a weird exception cludge
2015-08-05 08:52:52 +02:00
Daniel Gröber
6e28e07ca9
Fix #507
2015-08-05 08:01:25 +02:00
Daniel Gröber
d270e92951
Clean up L.H.GM.Target debug/vomit output a bit
2015-08-05 06:16:05 +02:00
Daniel Gröber
c9b6e95a30
Add Vomit log level and dumping to disk
2015-08-03 08:09:24 +02:00
Daniel Gröber
614522644b
Fix imports for ghc < 7.10
2015-08-03 07:51:23 +02:00
Daniel Gröber
6ef389a757
Merge branch 'Fix502' of https://github.com/acowley/ghc-mod
2015-08-03 05:48:15 +02:00
Daniel Gröber
84c0670fc4
docs
2015-08-03 05:47:16 +02:00
Daniel Gröber
75d4a2a9d6
Some debug logging for cabal configure
etc.
2015-08-03 05:47:16 +02:00
Daniel Gröber
f023d939e2
Fix GHC 7.10 warnings
2015-08-03 05:46:51 +02:00
Daniel Gröber
160cec86bb
Comment
2015-08-03 05:46:51 +02:00
Daniel Gröber
42e72b3816
Fix fileModuleName not working on CPP modules given by path
2015-08-03 05:46:51 +02:00
Anthony Cowley
e06e4d25df
More sensitive to cache invalidation.
...
This addresses a problem where changes to a .cabal file were not
invalidating the cache files.
2015-07-08 18:15:05 -04:00
Daniel Gröber
bfa0b965ee
Fix impredicativity related issue
...
See: https://ghc.haskell.org/trac/ghc/ticket/10443
2015-06-10 11:00:56 +02:00
Daniel Gröber
21087650d9
Fix travis
2015-06-07 03:36:50 +02:00
Daniel Gröber
acfc575e13
Make unknown component fallback message more clear
2015-06-07 02:45:50 +02:00
Daniel Gröber
bed42f10fe
Refactor L.H.G.Caching
2015-06-07 02:44:11 +02:00
Daniel Gröber
baf557d5bf
Comment
2015-06-07 01:53:41 +02:00
Daniel Gröber
49515b3eb8
Fix #487 , Modules from sandbox not visible
2015-06-05 22:45:52 +02:00
Daniel Gröber
6dd1195b7f
Merge remote-tracking branch 'sergv/master'
2015-06-02 12:30:15 +02:00
Daniel Gröber
14c097530e
Fix stray tempdir
2015-06-02 12:27:11 +02:00
Sergey Vinokurov
7b6eb55b11
Transform ModuleString and Expression type synonyms into newtypes
2015-06-02 10:43:29 +03:00
Sergey Vinokurov
6a65701397
Remove unused Module type
2015-06-02 10:43:29 +03:00
Sergey Vinokurov
4a9d578681
Improve style
2015-06-02 10:43:29 +03:00
Sergey Vinokurov
a23f1f3b75
Improve findVar function
2015-06-02 10:43:29 +03:00
Sergey Vinokurov
73b98573f4
Remove unused extractParens function and its tests
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
a2e4a5d683
Revert "use standard findFile instead of hand-rolled one"
...
This reverts commit b055098127
.
2015-05-20 12:05:22 +02:00
Daniel Gröber
a2abad53ac
Merge remote-tracking branch 'prezi/master'
...
Conflicts:
Language/Haskell/GhcMod/CabalHelper.hs
2015-05-20 11:37:17 +02:00
Sergey Vinokurov
84134e1fee
replace redundant liftM7 function with applicatives
2015-05-19 21:00:54 +03:00
Daniel Vigovszky
5f41e8828a
Revert "Not passing package db flags in default case"
...
This reverts commit 76e5af817a
.
2015-05-19 19:50:36 +02:00
Daniel Vigovszky
76e5af817a
Not passing package db flags in default case
2015-05-19 15:25:22 +02:00
Daniel Vigovszky
0bb1671238
Code cleanup
2015-05-19 14:08:18 +02:00
Sergey Vinokurov
f7717ee1ee
fix typo
2015-05-17 23:25:49 +03:00
Sergey Vinokurov
b055098127
use standard findFile instead of hand-rolled one
2015-05-17 23:25:49 +03:00
Daniel Gröber
e6fc3dd8d2
Fix tests
2015-05-08 00:06:08 +02:00
Daniel Gröber
e202fabc39
elisp: Fix usage of legacy-interactive
2015-05-06 23:13:24 +02:00
Daniel Gröber
0f1e653f7f
Change some logging stuff
2015-05-06 16:13:08 +02:00
Daniel Gröber
d11b12676e
Fix pretty printing of logging output
2015-05-05 16:09:54 +02:00
Daniel Gröber
c45a7f4b52
Fix caching for getGhcPkgOptions
2015-05-05 14:47:23 +02:00
Daniel Gröber
8b8f947b5e
Reinitialize GHC session when options change
2015-04-29 18:44:21 +02:00
Daniel Gröber
503562b9b6
Fix typo succ -> pred
2015-04-29 18:41:28 +02:00
Daniel Gröber
cf5dfa439c
Clarify HscInterpreted log message
2015-04-29 17:22:48 +02:00
Daniel Gröber
c831332185
Set -O0 to avoid various interperter issues
2015-04-29 17:21:37 +02:00
Daniel Vigovszky
3b7d51d25a
Removed unused function
2015-04-24 10:41:39 +02:00
Daniel Vigovszky
308c2d7963
Undo indenation change in Types.hs
2015-04-23 17:31:54 +02:00
Daniel Vigovszky
5d9d6f5630
Custom cradle support
2015-04-23 17:25:45 +02:00
Daniel Gröber
247e4e0e76
Decrease default log level
2015-04-15 13:13:22 +02:00
Daniel Gröber
fb19d021ca
Fix a few warnings
2015-04-14 21:39:11 +02:00
Daniel Gröber
95b16ded6d
Fix checkComponent
2015-04-14 00:53:40 +02:00
Daniel Gröber
9077e96aeb
Fix tests
2015-04-13 23:16:14 +02:00
Daniel Gröber
94ef8fae79
Enhance debug information
2015-04-12 02:48:54 +02:00
Daniel Gröber
ee4ee8765e
Fix weird resolveModule
double path issue
...
`mconcat` recurses into `Maybe a` which is not what I want, I just want
the first `Just` value
2015-04-12 02:48:54 +02:00
Daniel Gröber
d7984faf79
No double :
in logmsgs without a location
2015-04-12 02:48:54 +02:00
Daniel Gröber
2bf4c80580
Fix finding consistent component solution for targets
...
Union does the wrong thing, I wanted an intersection here.
2015-04-12 02:48:54 +02:00
Daniel Gröber
39a8ded102
Fix resolved component caching
2015-04-12 02:48:54 +02:00
Daniel Gröber
ca79f99c3e
Also add language options when resolving components
2015-04-12 02:48:54 +02:00
Daniel Gröber
6f59f07f00
Fix non canonicalized paths
2015-04-12 02:48:54 +02:00
Daniel Gröber
523f43c3c9
Fix some tests
2015-04-12 02:48:54 +02:00
Daniel Gröber
d0ca3ee807
Fix MonadIO mess
2015-04-12 02:48:54 +02:00
Daniel Gröber
f3b4da7a0e
Use cabal-helper to get buildPlatform
2015-04-12 02:48:53 +02:00
Daniel Gröber
55216e4af3
ifdef for ghc < 7.10
2015-03-28 19:54:10 +01:00
Markus Hauck
e3812b49ec
GHC 7.10.0.20150123 fixes
2015-03-28 19:13:51 +01:00
Daniel Gröber
80d91776c5
Cleanup and some fixes
2015-03-28 19:13:48 +01:00
Daniel Gröber
2a02742f9e
Write autogen file when calling cabal configure
2015-03-28 02:32:47 +01:00
Daniel Gröber
7019cbcfa1
Implement better caching for target options
2015-03-28 02:32:44 +01:00
Daniel Gröber
90d9577f8d
Factor out cabal-helper into a package
2015-03-15 20:48:55 +01:00
Daniel Gröber
a97e07065e
Don't set -Wall on check
2015-03-15 20:48:05 +01:00
Daniel Gröber
6756f1d10b
Get rid of some warnings with ghc-7.8
2015-03-11 13:17:24 +01:00
Daniel Gröber
539c294dd4
Fix a bunch of relate exception handling problems
...
should handle exceptions outside of runGmlT otherwise we don't catch ghc
load related ones.
2015-03-09 22:04:04 +01:00
Daniel Gröber
7d7f848afb
Fix cabal-helper ignoring --with-* flags
2015-03-08 20:53:00 +01:00
Daniel Gröber
1ac71364a9
Fix use of (head . lines)
2015-03-08 17:33:09 +01:00
Daniel Gröber
a6d3f477bc
Add better handling for empty component assignments
2015-03-08 17:32:17 +01:00
Daniel Gröber
baf5cad809
Pass through --with-* options to cabal-helper
2015-03-07 19:37:19 +01:00
Daniel Gröber
85d4844a0d
Improve suggestions on inconsistent assignment
2015-03-06 19:49:26 +01:00
Daniel Gröber
e23772b1ed
Recache cabal-helper stuff when cabal-helper-* executable changes
2015-03-06 19:48:22 +01:00
Daniel Gröber
c05bd816e7
Add quiet option to decrease log level
2015-03-06 19:47:51 +01:00
Daniel Gröber
c8da5b8085
Fix line endings in logging output
2015-03-06 14:04:49 +01:00
Daniel Gröber
2151363dd6
Add back -d
option to modules
command
2015-03-05 19:38:18 +01:00
Daniel Gröber
01dde80385
Bring test suite up to date
2015-03-05 17:35:28 +01:00
Daniel Gröber
f0ea445a9b
Cleanup errors and logging a bit
2015-03-05 17:35:28 +01:00
Daniel Gröber
bc71877dcf
Change the way cabal-helper is built a bit
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
7438539ca5
Change primary license to AGPL-3
2015-03-03 21:09:18 +01:00
Daniel Gröber
ef96b926c7
Use cabal-helper to support Cabal >= 1.22 with any version of ghc
2015-02-08 12:43:35 +01:00
Daniel Gröber
844bdea3db
Move symbolCache
to PathsAndFiles
2015-02-08 12:43:35 +01:00
Daniel Gröber
1c5a1c8b3e
Add util function for finding libexec binaries
2015-02-08 12:43:35 +01:00
Daniel Gröber
417cacbf81
Fix finding sandbox in sandbox only projects
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
45d6b7d67a
Guess right sandbox pkg-db path on ghc version mismatch
...
If cabal.sandbox.config contains a "package-db:" declaration with the
wrong path and only the ghc version is wrong, for example:
```
package-db: <DIR>/.cabal-sandbox/x86_64-linux-ghc-7.8.3-packages.conf.d
```
Even though the user is using 7.10.0.20141222 `cabal repl` will correct
this and pass
```
-package-db <DIR>/.cabal-sandbox/x86_64-linux-ghc-7.10.0.20141222-packages.conf.d
```
to ghci, so obviously Cabal/cabal-install is doing some magic.
Conflicts:
Language/Haskell/GhcMod/PathsAndFiles.hs
2015-02-08 12:43:25 +01:00
Daniel Gröber
ce61f38f4d
Remove a bunch of dead code
2015-01-03 00:36:12 +01:00
klapaucius
fc7ce47e93
fix for varid bug in showExports & processExports
2014-12-24 22:17:36 +01:00
Dimitri 'phaazon' Sabadie
f023f4fc06
Fixed #422 .
2014-12-24 22:12:36 +01:00
Daniel Gröber
782f234981
Fix ghc-mod tempdirs not being removed on exit
2014-12-24 21:34:57 +01:00
Daniel Gröber
80e826a199
Prefix ghc-mod tmpdirs with "ghc-mod"
2014-12-24 21:34:39 +01:00
Daniel Gröber
9a8a3651d0
Fix findCabalFile
2014-11-03 00:45:27 +01:00
Daniel Gröber
506cf18885
Don't use fromJust
2014-11-03 00:33:23 +01:00
Rob Everest
56cc237e26
Support where clauses, let bindings and case expressions in case splitting ( fixes #395 )
2014-11-03 00:15:12 +01:00