@@ -4,7 +4,7 @@ module Main where
4import Control.Monad
4import Control.Monad
5import qualified Data.Map as Map
5import qualified Data.Map as Map
6import qualified Data.List as List
6import qualified Data.List as List
7−import Data.Binary (encodeFile, decodeFile)
7+import qualified Data.Binary as Binary
8import Data.Version (showVersion)
8import Data.Version (showVersion)
9import System.Console.CmdArgs hiding (program)
9import System.Console.CmdArgs hiding (program)
10import System.Directory
10import System.Directory
@@ -16,6 +16,7 @@ import qualified Text.Blaze.Html.Renderer.String as Normal
16import qualified Text.Jasmine as JS
16import qualified Text.Jasmine as JS
17import qualified Data.ByteString.Lazy.Char8 as BS
17import qualified Data.ByteString.Lazy.Char8 as BS
19+import qualified Metadata.Prelude as Prelude
19import SourceSyntax.Module
20import SourceSyntax.Module
20import Initialize (buildFromSource, getSortedModuleNames, Interfaces)
21import Initialize (buildFromSource, getSortedModuleNames, Interfaces)
21import Generate.JavaScript (jsModule)
22import Generate.JavaScript (jsModule)
@@ -86,7 +87,7 @@ elmi flags filePath = file flags filePath "elmi"
86buildFile :: Flags -> Int -> Int -> Interfaces -> FilePath -> IO ModuleInterface
87buildFile :: Flags -> Int -> Int -> Interfaces -> FilePath -> IO ModuleInterface
87buildFile flags moduleNum numModules interfaces filePath =
88buildFile flags moduleNum numModules interfaces filePath =
88 do compiled <- alreadyCompiled
89 do compiled <- alreadyCompiled
89− if compiled then decodeFile (elmi flags filePath) else compile
90+ if compiled then Binary.decodeFile (elmi flags filePath) else compile
92 alreadyCompiled :: IO Bool
93 alreadyCompiled :: IO Bool
@@ -121,7 +122,7 @@ buildFile flags moduleNum numModules interfaces filePath =
121 iTypes = tipes,
122 iTypes = tipes,
122 iAdts = datatypes metaModule
123 iAdts = datatypes metaModule
124− encodeFile (elmi flags filePath) interface
125+ Binary.encodeFile (elmi flags filePath) interface
125 let js = jsModule metaModule
126 let js = jsModule metaModule
126 writeFile (elmo flags filePath) js
127 writeFile (elmo flags filePath) js
127 return interface
128 return interface
@@ -146,8 +147,7 @@ getRuntime flags =
146build :: Flags -> FilePath -> IO ()
147build :: Flags -> FilePath -> IO ()
147build flags rootFile = do
148build flags rootFile = do
148 files <- if make flags then getSortedModuleNames rootFile else return [rootFile]
149 files <- if make flags then getSortedModuleNames rootFile else return [rootFile]
149− let initialInterface = if no_prelude flags then Map.empty else Map.empty
150− interfaces <- buildFiles flags (length files) initialInterface files
150+ interfaces <- buildFiles flags (length files) Prelude.interfaces files
151 js <- foldM appendToOutput "" files
151 js <- foldM appendToOutput "" files
152 case only_js flags of
152 case only_js flags of
153 True -> do
153 True -> do