on master help sign in
Remove 'catch' round server
7c86659Edwin Brady
src/Idris/REPL.hs+4−6
@@ -1,5 +1,5 @@
1{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, DeriveFunctor,
1{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, DeriveFunctor,
2− PatternGuards, ScopedTypeVariables, CPP #-}
2+ PatternGuards, CPP #-}
3
3
4module Idris.REPL where
4module Idris.REPL where
5
5
@@ -111,11 +111,9 @@ startServer orig stvar fn_in = do tid <- runIO $ forkOS serverLoop
111 where serverLoop :: IO ()
111 where serverLoop :: IO ()
112 -- TODO: option for port number
112 -- TODO: option for port number
113 serverLoop = withSocketsDo $
113 serverLoop = withSocketsDo $
114− catch (do sock <- listenOn $ PortNumber 4294
114+ do sock <- listenOn $ PortNumber 4294
115− i <- readMVar stvar
115+ i <- readMVar stvar
116− loop i sock)
116+ loop i sock
117− (\(e :: IOException) -> return ()) -- silently fail
118− -- TODO: allow multiple instances somehow
119
117
120 fn = case fn_in of
118 fn = case fn_in of
121 (f:_) -> f
119 (f:_) -> f
src/Idris/REPLParser.hs−4
@@ -70,10 +70,6 @@ pCmd = do P.whiteSpace; try (do cmd ["q", "quit"]; eof; return Quit)
70 upd <- option False (do P.lchar '!'; return True)
70 upd <- option False (do P.lchar '!'; return True)
71 l <- P.natural; n <- P.name;
71 l <- P.natural; n <- P.name;
72 return (CaseSplitAt upd (fromInteger l) n))
72 return (CaseSplitAt upd (fromInteger l) n))
73− <|> try (do cmd ["cs", "casesplit"]; P.whiteSpace;
74− n <- P.name;
75− t <- P.fullExpr defaultSyntax;
76− return (CaseSplit n t))
77 <|> try (do cmd ["ac", "addclause"]; P.whiteSpace;
73 <|> try (do cmd ["ac", "addclause"]; P.whiteSpace;
78 upd <- option False (do P.lchar '!'; return True)
74 upd <- option False (do P.lchar '!'; return True)
79 l <- P.natural; n <- P.name;
75 l <- P.natural; n <- P.name;