packages feed

remote-debugger 0.1.1 → 0.2.1

raw patch · 3 files changed

+25/−18 lines, 3 filesdep ~ghc

Dependency ranges changed: ghc

Files

remote-debugger.cabal view
@@ -1,5 +1,5 @@ name:                remote-debugger-version:             0.1.1+version:             0.2.1 description:         Wraper to GHC debugger API allowing debugging throught socket. Used in haskell-idea-plugin. license:             BSD3 license-file:        LICENSE@@ -23,7 +23,7 @@      hs-source-dirs:     src     build-depends:      base >= 3 && <5,-                        ghc,+                        ghc == 7.8.3,                         ghc-paths,                         array,                         network,
src/DebuggerImpl.hs view
@@ -286,12 +286,13 @@ changeBreakFlagInModBreaks :: String -> Int -> Bool -> DebuggerMonad Bool changeBreakFlagInModBreaks modName flagIndex flagValue = do     modBreaks <- getModBreaks modName+    dflags <- GHC.getSessionDynFlags     let breaksFlags = modBreaks_flags modBreaks-    liftIO $ setBreakFlag breaksFlags flagIndex flagValue+    liftIO $ setBreakFlag dflags breaksFlags flagIndex flagValue -setBreakFlag :: BreakArray -> Int -> Bool -> IO Bool-setBreakFlag bArr ind flag | flag      = setBreakOn bArr ind-                           | otherwise = setBreakOff bArr ind+setBreakFlag :: DynFlags -> BreakArray -> Int -> Bool -> IO Bool+setBreakFlag dynFlags bArr ind flag | flag      = setBreakOn dynFlags bArr ind+                                    | otherwise = setBreakOff dynFlags bArr ind  -- | ':delete <module name> <break index>' command deleteBreakpoint ::  String -> Int -> DebuggerMonad Result@@ -446,7 +447,7 @@              getThingType :: TyThing -> DebuggerMonad (String)             getThingType (AnId id') = do-                showSDoc $ pprTypeForUser False (GHC.idType id')+                showSDoc $ pprTypeForUser (GHC.idType id')             getThingType _ = fail "Shouldn't be here"              getThingValue :: TyThing -> DebuggerMonad (String)@@ -539,7 +540,7 @@ getExprType :: String -> DebuggerMonad Result getExprType expr = do     ty <- GHC.exprType expr-    doc <- showSDoc $ pprTypeForUser False ty+    doc <- showSDoc $ pprTypeForUser ty     return [             ("info", ConsStr "expression type"),             ("type", ConsStr doc)@@ -551,7 +552,7 @@     -- it seems that __evalResult is not stored after evaluating, so it is safe to do such binding     RunOk [name] <- GHC.runStmt ("let __evalResult = " ++ str) GHC.RunToCompletion     Just (AnId id') <- GHC.lookupName name-    type' <- showSDoc $ pprTypeForUser False (GHC.idType id')+    type' <- showSDoc $ pprTypeForUser (GHC.idType id')     term <- GHC.obtainTermFromId 100 force id'     value <- showOutputable term     return [@@ -598,14 +599,14 @@     case flag of         "-fbreak-on-error" -> do             dflags <- GHC.getSessionDynFlags-            let dflags' = DynFlags.dopt_set dflags DynFlags.Opt_BreakOnError-                dflags'' = DynFlags.dopt_unset dflags' DynFlags.Opt_BreakOnException+            let dflags' = DynFlags.gopt_set dflags DynFlags.Opt_BreakOnError+                dflags'' = DynFlags.gopt_unset dflags' DynFlags.Opt_BreakOnException             GHC.setSessionDynFlags dflags''             return [("info", ConsStr "break set")]         "-fbreak-on-exception" -> do             dflags <- GHC.getSessionDynFlags-            let dflags' = DynFlags.dopt_set dflags DynFlags.Opt_BreakOnException-                dflags'' = DynFlags.dopt_unset dflags' DynFlags.Opt_BreakOnError+            let dflags' = DynFlags.gopt_set dflags DynFlags.Opt_BreakOnException+                dflags'' = DynFlags.gopt_unset dflags' DynFlags.Opt_BreakOnError             GHC.setSessionDynFlags dflags''             return [("info", ConsStr "break set")]         _ -> return [("info", ConsStr "exception"), ("message", ConsStr "Unknown \"set\" flag")]@@ -619,8 +620,8 @@         where             unsetBreak = do                 dflags <- GHC.getSessionDynFlags-                let dflags' = DynFlags.dopt_unset dflags DynFlags.Opt_BreakOnException-                    dflags'' = DynFlags.dopt_unset dflags' DynFlags.Opt_BreakOnError+                let dflags' = DynFlags.gopt_unset dflags DynFlags.Opt_BreakOnException+                    dflags'' = DynFlags.gopt_unset dflags' DynFlags.Opt_BreakOnError                 GHC.setSessionDynFlags dflags''                 return [("info", ConsStr "break unset")] @@ -665,7 +666,8 @@     modBreaks <- getModBreaks modName     -- modBreaks_flags - 0 if unset 1 if set     printString "# modBreaks_flags:"-    liftIO $ showBreakArray $ modBreaks_flags $ modBreaks+    dynFlags <- getSessionDynFlags+    liftIO $ showBreakArray dynFlags $ modBreaks_flags $ modBreaks     -- modBreaks_locs - breakpoint index and SrcSpan     printString "# modBreaks_locs:"     mapM (\(i, e) -> printString (show i ++ " : " ++ show e)) $ assocs $ modBreaks_locs $ modBreaks
src/ParserMonad.hs view
@@ -1,6 +1,7 @@ module ParserMonad where  import Data.Char+import Control.Applicative hiding (many, (<|>))  -- | Parser type newtype Parser a = P (String -> [ (a, String) ])@@ -22,6 +23,10 @@     return x   = P $ \cs -> [ (x, cs) ]     fail _     = P $ \_ ->  [] +instance Applicative Parser where+    pure x = P $ \cs -> [ (x, cs) ]+    a <*> b = a >>= (\f -> fmap f b)+ instance Functor Parser where     fmap f p = p >>= \x -> return (f x) @@ -88,7 +93,7 @@ -- | Skips spacing characters (more than zero) waitAndSkipSpaces :: Parser () waitAndSkipSpaces = do-    restSatisfiedChars isSpace+    _ <- restSatisfiedChars isSpace     return ()  -- | Returns remaining input@@ -100,7 +105,7 @@ end :: Parser () end = do     b <- do {-             c <- anyChar ;+             _ <- anyChar ;              return False ;          } <|> return True     if b then return () else fail "End wasn't reached"