intero 0.1.3 → 0.1.5
raw patch · 5 files changed
+76/−3 lines, 5 filesdep ~ghc
Dependency ranges changed: ghc
Files
- CHANGELOG +12/−0
- README.md +34/−0
- intero.cabal +4/−2
- src/GhciInfo.hs +5/−1
- src/test/Main.hs +21/−0
+ CHANGELOG view
@@ -0,0 +1,12 @@+0.1.5:+ * Add upper bound for GHC (https://github.com/chrisdone/intero/issues/27)++0.1.4:+ * Fix cache invalidation bug for interpreted mode (https://github.com/chrisdone/intero/issues/1)++0.1.3:+ * Added test suite+ * Fix bug in :type-at that excluded a type constraint (https://github.com/chrisdone/intero/issues/14)++0.1.2:+ * Fixed bug in :uses, by using location equality.
+ README.md view
@@ -0,0 +1,34 @@+# <img src="https://github.com/chrisdone/intero/raw/master/images/intero.svg" height=25> intero [](https://travis-ci.org/chrisdone/intero)++Complete interactive development program for Haskell++## Requirements++The following dependencies are necessary:++* The `tinfo` and `ncurses` library.++ * Ubuntu and Debian users can install it using the following command:++ $ apt-get install libtinfo-dev+ $ apt-get install libncurses5-dev++## Installing++Standard:++ $ stack build intero++From source:++ $ git clone https://github.com/chrisdone/intero.git+ $ cd intero+ $ stack build intero++## Supported GHC versions++Intero been built and tested on the following GHC versions:++* GHC 7.8.4+* GHC 7.10.2+* GHC 7.10.3
intero.cabal view
@@ -1,7 +1,7 @@ name: intero version:- 0.1.3+ 0.1.5 synopsis: Complete interactive development program for Haskell license:@@ -30,6 +30,8 @@ extra-source-files: cbits/HsVersions.h cbits/PosixSource.h+ CHANGELOG+ README.md source-repository head type: git@@ -64,7 +66,7 @@ bytestring, directory, filepath,- ghc >= 7.8,+ ghc >= 7.8 && <= 7.10.3, ghc-paths, haskeline, process,
src/GhciInfo.hs view
@@ -37,7 +37,11 @@ => Map ModuleName ModInfo -> [ModuleName] -> m (Map ModuleName ModInfo) collectInfo ms loaded = do df <- getSessionDynFlags- invalidated <- liftIO (filterM cacheInvalid loaded)+ -- Generate for all modules in interpreted mode.+ invalidated <-+ liftIO (if hscTarget df == HscInterpreted+ then return loaded+ else filterM cacheInvalid loaded) if null invalidated then return ms else do liftIO (putStrLn ("Collecting type info for " ++
src/test/Main.hs view
@@ -5,6 +5,7 @@ import Control.Exception import Control.Monad.IO.Class+import System.Directory import System.IO import System.IO.Temp import System.Process@@ -25,6 +26,7 @@ types use definition+ bytecode -- | Basic commands that should work out of the box. basics :: Spec@@ -57,6 +59,25 @@ shouldBe result (unlines ["Failed, modules loaded: none." ,"" ,"<no location info>: can't find file: NonExistent.hs"])))++-- | Check things when in -fbyte-code mode.+bytecode :: Spec+bytecode =+ describe "Bytecode"+ (do it ":set -fobject-code ; :l X.hs; :set -byte-code; :l X.hs"+ (do result <-+ withIntero+ []+ (\dir repl ->+ do _ <- repl (":set -fobject-code")+ writeFile (dir ++ "/X.hs") "x = 'a'"+ _ <- repl (":l X.hs")+ _ <- repl (":set -fbyte-code")+ writeFile (dir ++ "/X.hs") "x = 123"+ repl (":l X.hs"))+ shouldBe (unlines (reverse (take 2 (reverse (lines result)))))+ (unlines ["Ok, modules loaded: Main."+ ,"Collecting type info for 1 module(s) ... "]))) -- | Get type information of file contents. types :: Spec