git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Fix #1276
96e3a5cPhil Freeman
psc/Main.hs+1−1
@@ -68,7 +68,7 @@ compile (PSCMakeOptions inputGlob inputForeignGlob outputDir opts usePrefix) = d
68 hPutStrLn stderr (P.prettyPrintMultipleWarnings (P.optionsVerboseErrors opts) warnings)
68 hPutStrLn stderr (P.prettyPrintMultipleWarnings (P.optionsVerboseErrors opts) warnings)
69 let filePathMap = M.fromList $ map (\(fp, P.Module _ mn _ _) -> (mn, fp)) ms
69 let filePathMap = M.fromList $ map (\(fp, P.Module _ mn _ _) -> (mn, fp)) ms
70 makeActions = buildMakeActions outputDir filePathMap foreigns usePrefix
70 makeActions = buildMakeActions outputDir filePathMap foreigns usePrefix
71− e <- runMake opts $ P.make makeActions ms
71+ e <- runMake opts $ P.make makeActions (map snd ms)
72 case e of
72 case e of
73 Left errs -> do
73 Left errs -> do
74 hPutStrLn stderr (P.prettyPrintMultipleErrors (P.optionsVerboseErrors opts) errs)
74 hPutStrLn stderr (P.prettyPrintMultipleErrors (P.optionsVerboseErrors opts) errs)
psci/PSCi.hs+3−3
@@ -21,7 +21,7 @@
21module PSCi where
21module PSCi where
22
22
23import Data.Foldable (traverse_)
23import Data.Foldable (traverse_)
24−import Data.List (intercalate, nub, sort, isPrefixOf)
24+import Data.List (intercalate, nub, sort)
25import Data.Traversable (traverse)
25import Data.Traversable (traverse)
26import Data.Tuple (swap)
26import Data.Tuple (swap)
27import Data.Version (showVersion)
27import Data.Version (showVersion)
@@ -259,11 +259,11 @@ makeIO f io = do
259 either (throwError . P.singleError . f) return e
259 either (throwError . P.singleError . f) return e
260
260
261make :: PSCiState -> [(Either P.RebuildPolicy FilePath, P.Module)] -> P.Make P.Environment
261make :: PSCiState -> [(Either P.RebuildPolicy FilePath, P.Module)] -> P.Make P.Environment
262−make PSCiState{..} ms = P.make actions' (psciLoadedModules ++ ms)
262+make PSCiState{..} ms = P.make actions' (map snd (psciLoadedModules ++ ms))
263 where
263 where
264 filePathMap = M.fromList $ (first P.getModuleName . swap) `map` (psciLoadedModules ++ ms)
264 filePathMap = M.fromList $ (first P.getModuleName . swap) `map` (psciLoadedModules ++ ms)
265 actions = P.buildMakeActions modulesDir filePathMap psciForeignFiles False
265 actions = P.buildMakeActions modulesDir filePathMap psciForeignFiles False
266− actions' = actions { P.progress = \s -> unless ("Compiling $PSCI" `isPrefixOf` s) $ liftIO . putStrLn $ s }
266+ actions' = actions { P.progress = const (return ()) }
267
267
268-- |
268-- |
269-- Takes a value declaration and evaluates it with the current state.
269-- Takes a value declaration and evaluates it with the current state.
src/Language/PureScript/Make.hs+5−8
@@ -136,10 +136,10 @@ data RebuildPolicy
136--
136--
137make :: forall m. (Functor m, Applicative m, Monad m, MonadReader Options m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
137make :: forall m. (Functor m, Applicative m, Monad m, MonadReader Options m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)
138 => MakeActions m
138 => MakeActions m
139− -> [(Either RebuildPolicy FilePath, Module)]
139+ -> [Module]
140 -> m Environment
140 -> m Environment
141make MakeActions{..} ms = do
141make MakeActions{..} ms = do
142− (sorted, graph) <- sortModules $ map (importPrim . snd) ms
142+ (sorted, graph) <- sortModules $ map importPrim ms
143 mapM_ lint sorted
143 mapM_ lint sorted
144 toRebuild <- foldM (\s (Module _ moduleName' _ _) -> do
144 toRebuild <- foldM (\s (Module _ moduleName' _ _) -> do
145 inputTimestamp <- getInputTimestamp moduleName'
145 inputTimestamp <- getInputTimestamp moduleName'
@@ -282,6 +282,8 @@ buildMakeActions outputDir filePathMap foreigns usePrefix =
282 foreignFile = outputDir </> filePath </> "foreign.js"
282 foreignFile = outputDir </> filePath </> "foreign.js"
283 prefix = ["Generated by psc version " ++ showVersion Paths.version | usePrefix]
283 prefix = ["Generated by psc version " ++ showVersion Paths.version | usePrefix]
284 js = unlines $ map ("// " ++) prefix ++ [pjs]
284 js = unlines $ map ("// " ++) prefix ++ [pjs]
285+ verboseErrorsEnabled <- asks optionsVerboseErrors
286+ when verboseErrorsEnabled $ progress $ "Writing " ++ jsFile
285 writeTextFile jsFile js
287 writeTextFile jsFile js
286 maybe (return ()) (writeTextFile foreignFile . snd) $ mn `M.lookup` foreigns
288 maybe (return ()) (writeTextFile foreignFile . snd) $ mn `M.lookup` foreigns
287 writeTextFile externsFile exts
289 writeTextFile externsFile exts
@@ -295,16 +297,11 @@ buildMakeActions outputDir filePathMap foreigns usePrefix =
295 traverse (const $ getModificationTime path) $ guard exists
297 traverse (const $ getModificationTime path) $ guard exists
296
298
297 readTextFile :: FilePath -> Make String
299 readTextFile :: FilePath -> Make String
298− readTextFile path = do
299− verboseErrorsEnabled <- asks optionsVerboseErrors
300− makeIO (const (SimpleErrorWrapper $ CannotReadFile path)) $ do
300+ readTextFile path = makeIO (const (SimpleErrorWrapper $ CannotReadFile path)) $ readFile path
301− when verboseErrorsEnabled $ putStrLn $ "Reading " ++ path
302− readFile path
303
301
304 writeTextFile :: FilePath -> String -> Make ()
302 writeTextFile :: FilePath -> String -> Make ()
305 writeTextFile path text = makeIO (const (SimpleErrorWrapper $ CannotWriteFile path)) $ do
303 writeTextFile path text = makeIO (const (SimpleErrorWrapper $ CannotWriteFile path)) $ do
306 mkdirp path
304 mkdirp path
307− putStrLn $ "Writing " ++ path
308 writeFile path text
305 writeFile path text
309 where
306 where
310 mkdirp :: FilePath -> IO ()
307 mkdirp :: FilePath -> IO ()
tests/Main.hs+1−1
@@ -115,7 +115,7 @@ compile :: [FilePath] -> M.Map P.ModuleName (FilePath, P.ForeignJS) -> IO (Eithe
115compile inputFiles foreigns = runTest $ do
115compile inputFiles foreigns = runTest $ do
116 fs <- liftIO $ readInput inputFiles
116 fs <- liftIO $ readInput inputFiles
117 ms <- P.parseModulesFromFiles id fs
117 ms <- P.parseModulesFromFiles id fs
118− P.make (makeActions foreigns) (map (\(k, v) -> (Right k, v)) ms)
118+ P.make (makeActions foreigns) (map snd ms)
119
119
120assert :: [FilePath] ->
120assert :: [FilePath] ->
121 M.Map P.ModuleName (FilePath, P.ForeignJS) ->
121 M.Map P.ModuleName (FilePath, P.ForeignJS) ->