packages feed

alpha 1.0.13 → 1.0.14

raw patch · 2 files changed

+5/−5 lines, 2 files

Files

alpha.cabal view
@@ -1,12 +1,12 @@ name:           alpha-version:        1.0.13+version:        1.0.14 synopsis:       A compiler for the Alpha language description:    Alpha is a programming language that aims at being very simple and                  low-level, so as to be efficient, while at the same time                 being able to climb in abstraction through introspection                 in the Lisp Way. category:       Compiler-homepage:       http://www.alpha-lang.info/+homepage:       http://www.alpha-lang.net/ author:         Marc Coiffier maintainer:     marc.coiffier@gmail.com stability:      alpha
src/Alpha.hs view
@@ -76,8 +76,8 @@   putStrLn "\rGoodbye !" compileProgram (language,entryName) = withInitialContext $ do   langTime <- importLanguage (const $ return ()) language-  progTime <- modTime entryName-  when (progTime < langTime) $ tagIO ("Linking program "++entryName) $ do+  skipLink <- fileExist entryName <&&> liftM (langTime <=) (modTime entryName)+  unless skipLink $ tagIO ("Linking program "++entryName) $ do     entrySym <- viewState language_ $ internSym entryName     _ <- getAddressComp (outputArch ?settings) entrySym     (addrs,ptrs) <- unzip $< sortBy (comparing fst) $< M.elems $< gets compAddresses@@ -108,7 +108,7 @@   where import' lang = gets language >>= \l -> ifThenElse (lang`isImport`l) (modTime $ languageFile lang) $ do           node@(time,(l',_)) <- compileLanguage False lang           times <- mapM import' (getImports l')-          node <- if time < foldl max time times then compileLanguage True lang else return node+          node <- if any (> time) times then compileLanguage True lang else return node           let (time,(l'',init)) = node               l' = l''{ nameL = lang }           init' <- viewing language_ $ modify (<>l') >> gets (translateInit init l')