on master help sign in
Ensure that --make skips trying to read libraries as files.
ab62612evancz
compiler/Initialize.hs+4−10
@@ -3,12 +3,14 @@ module Initialize (build, buildFromSource) where
3import Control.Applicative ((<$>))
3import Control.Applicative ((<$>))
4import Control.Monad.Error
4import Control.Monad.Error
5import Data.List (lookup,nub)
5import Data.List (lookup,nub)
6+import qualified Data.Map as Map
6
7
7import Ast
8import Ast
8import Data.Either (lefts,rights)
9import Data.Either (lefts,rights)
9import Data.List (intercalate,partition)
10import Data.List (intercalate,partition)
10import Parse.Parser (parseProgram, preParse)
11import Parse.Parser (parseProgram, preParse)
11import Rename
12import Rename
13+import Libraries (libraries)
12import Types.Types ((-:))
14import Types.Types ((-:))
13import Types.Hints (hints)
15import Types.Hints (hints)
14import Types.Unify
16import Types.Unify
@@ -27,9 +29,7 @@ checkTypes (Module name ex im stmts) =
27 let stmts' = dealias stmts
29 let stmts' = dealias stmts
28 modul = Module name ex im stmts'
30 modul = Module name ex im stmts'
29 in do subs <- unify hints modul
31 in do subs <- unify hints modul
30− let --im' | any ((=="Prelude") . fst) im = im
31− -- | otherwise = ("Prelude", Importing []) : im
32− modul' = optimize . renameModule $ Module name ex im stmts'
32+ let modul' = optimize . renameModule $ Module name ex im stmts'
33 subs `seq` return modul'
33 subs `seq` return modul'
34
34
35check :: Module -> Either String Module
35check :: Module -> Either String Module
@@ -90,13 +90,7 @@ readDeps seen root = do
90 where realDeps = filter (`notElem` builtIns) deps
90 where realDeps = filter (`notElem` builtIns) deps
91 newDeps = filter (`notElem` seen) realDeps
91 newDeps = filter (`notElem` seen) realDeps
92 seen' = root : seen ++ newDeps
92 seen' = root : seen ++ newDeps
93− builtIns = [] {--
93+ builtIns = Map.keys libraries
94− ["List","Char","Either","Maybe","Dict","Set","Date",
95− "Signal","Mouse","Keyboard.Raw","Keyboard","Touch",
96− "WebSocket","Window","Time","HTTP","Input","Random",
97− "Graphics","Text","Color","JavaScript","Automaton",
98− "JavaScript.Experimental","Prelude","JSON"]
99− --}
100
94
101isNative name = takeWhile (/='.') name == "Native"
95isNative name = takeWhile (/='.') name == "Native"
102toFilePath name = map swapDots name ++ ext
96toFilePath name = map swapDots name ++ ext