@@ -6,6 +6,7 @@ import Idris.Error
6import Idris.ElabDecls
6import Idris.ElabDecls
7import Idris.ElabTerm
7import Idris.ElabTerm
8import Idris.IBC
8import Idris.IBC
9import Paths_idris
10import Paths_idris
11import Core.CoreParser
12import Core.CoreParser
@@ -59,10 +60,14 @@ loadModule f
59 then iLOG $ "Already read " ++ f
60 then iLOG $ "Already read " ++ f
60 else do putIState (i { imported = f : imported i })
61 else do putIState (i { imported = f : imported i })
61 case fp of
62 case fp of
63+ IDR fn -> loadSource False fn
62− IDR fn -> loadSource fn
64+ LIDR fn -> loadSource True fn
63− IBC fn src -> idrisCatch (loadIBC fn)
66+ idrisCatch (loadIBC fn)
64− (\c -> do iLOG $ fn ++ " failed"
67+ (\c -> do iLOG $ fn ++ " failed"
69+ IDR sfn -> loadSource False sfn
65− loadSource src)
70+ LIDR sfn -> loadSource True sfn)
66 let (dir, fh) = splitFileName f
71 let (dir, fh) = splitFileName f
67 return (dropExtension fh))
72 return (dropExtension fh))
68 (\e -> do let msg = report e
73 (\e -> do let msg = report e
@@ -70,9 +75,11 @@ loadModule f
70 iputStrLn msg
75 iputStrLn msg
71 return "")
76 return "")
73−loadSource :: FilePath -> Idris ()
78+loadSource :: Bool -> FilePath -> Idris ()
74−loadSource f = do iLOG ("Reading " ++ f)
80+ = do iLOG ("Reading " ++ f)
75− file <- lift $ readFile f
81+ file_in <- lift $ readFile f
82+ file <- if lidr then tclift $ unlit f file_in else return file_in
76 (mname, modules, rest, pos) <- parseImports f file
83 (mname, modules, rest, pos) <- parseImports f file
77 mapM_ loadModule modules
84 mapM_ loadModule modules
78 clearIBC -- start a new .ibc file
85 clearIBC -- start a new .ibc file
@@ -85,6 +92,8 @@ loadSource f = do iLOG ("Reading " ++ f)
85 logLvl 10 (show (toAlist (idris_implicits i)))
92 logLvl 10 (show (toAlist (idris_implicits i)))
86 logLvl 3 (show (idris_infixes i))
93 logLvl 3 (show (idris_infixes i))
87 -- Now add all the declarations to the context
94 -- Now add all the declarations to the context
96+ when repl $ iputStrLn $ "Type checking " ++ f
88 mapM_ (elabDecl toplevel) ds
97 mapM_ (elabDecl toplevel) ds
89 iLOG ("Finished " ++ f)
98 iLOG ("Finished " ++ f)
90 let ibc = dropExtension f ++ ".ibc"
99 let ibc = dropExtension f ++ ".ibc"