[commit: ghc] wip/nfs-locking: Adds Unlit utility (cce8759)

git at git.haskell.org git at git.haskell.org
Thu Oct 26 23:46:02 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : wip/nfs-locking
Link       : http://ghc.haskell.org/trac/ghc/changeset/cce8759fdf3eed5988013cea4d2810457e8272a0/ghc

>---------------------------------------------------------------

commit cce8759fdf3eed5988013cea4d2810457e8272a0
Author: Moritz Angermann <moritz.angermann at gmail.com>
Date:   Fri Jan 8 18:21:31 2016 +0800

    Adds Unlit utility
    
    Adds the unlit utility to turn literate files into unliterate files.
    Fixes #83


>---------------------------------------------------------------

cce8759fdf3eed5988013cea4d2810457e8272a0
 shaking-up-ghc.cabal                         |  1 +
 src/GHC.hs                                   | 14 +++++++++-----
 src/Rules/Data.hs                            | 11 +++++++++++
 src/Settings/Args.hs                         |  4 +++-
 src/Settings/Packages/{Hp2ps.hs => Unlit.hs} | 10 +++++-----
 5 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/shaking-up-ghc.cabal b/shaking-up-ghc.cabal
index ab9f7bc..066b9e7 100644
--- a/shaking-up-ghc.cabal
+++ b/shaking-up-ghc.cabal
@@ -91,6 +91,7 @@ executable ghc-shake
                        , Settings.Packages.Rts
                        , Settings.Packages.RunGhc
                        , Settings.Packages.Touchy
+                       , Settings.Packages.Unlit                       
                        , Settings.TargetDirectory
                        , Settings.User
                        , Settings.Ways
diff --git a/src/GHC.hs b/src/GHC.hs
index 3d99e63..c26f552 100644
--- a/src/GHC.hs
+++ b/src/GHC.hs
@@ -6,7 +6,7 @@ module GHC (
     haddock, haskeline, hsc2hs, hoopl, hp2ps, hpc, hpcBin, integerGmp,
     integerSimple, iservBin, libffi, mkUserGuidePart, parallel, pretty,
     primitive, process, rts, runGhc, stm, templateHaskell, terminfo, time,
-    touchy, transformers, unix, win32, xhtml,
+    touchy, transformers, unlit, unix, win32, xhtml,
 
     defaultKnownPackages, defaultTargetDirectory, defaultProgramPath
     ) where
@@ -28,7 +28,7 @@ defaultKnownPackages =
     , ghcTags, haddock, haskeline, hsc2hs, hoopl, hp2ps, hpc, hpcBin, integerGmp
     , integerSimple, iservBin, libffi, mkUserGuidePart, parallel, pretty
     , primitive, process, rts, runGhc, stm, templateHaskell, terminfo, time
-    , touchy, transformers, unix, win32, xhtml ]
+    , touchy, transformers, unlit, unix, win32, xhtml ]
 
 -- Package definitions (see "Package")
 array, base, binary, bytestring, cabal, compiler, containers, compareSizes,
@@ -37,7 +37,7 @@ array, base, binary, bytestring, cabal, compiler, containers, compareSizes,
     haddock, haskeline, hsc2hs, hoopl, hp2ps, hpc, hpcBin, integerGmp,
     integerSimple, iservBin, libffi, mkUserGuidePart, parallel, pretty,
     primitive, process, rts, runGhc, stm, templateHaskell, terminfo, time,
-    touchy, transformers, unix, win32, xhtml :: Package
+    touchy, transformers, unlit, unix, win32, xhtml :: Package
 
 array           = library  "array"
 base            = library  "base"
@@ -85,11 +85,12 @@ terminfo        = library  "terminfo"
 time            = library  "time"
 touchy          = utility  "touchy"
 transformers    = library  "transformers"
+unlit           = utility  "unlit"
 unix            = library  "unix"
 win32           = library  "Win32"
 xhtml           = library  "xhtml"
 
--- TODO: The following utils are not implemented yet: unlit, driver/ghc-split
+-- TODO: The following utils are not implemented yet: driver/ghc-split
 -- TODO: The following utils are not included into the build system because
 -- they seem to be unused or unrelated to the build process: checkUniques,
 -- completion, count_lines, coverity, debugNGC, describe-unexpected, genargs,
@@ -112,9 +113,12 @@ defaultProgramPath stage pkg
     | pkg == haddock || pkg == ghcTags = case stage of
         Stage2 -> Just . inplaceProgram $ pkgNameString pkg
         _      -> Nothing
-    | pkg == touchy = case stage of
+    |  pkg == touchy = case stage of
         Stage0 -> Just $ "inplace/lib/bin" -/- pkgNameString pkg <.> exe
         _      -> Nothing
+    | pkg == unlit = case stage of
+        Stage0 -> Just $ "inplace/lib" -/- pkgNameString pkg <.> exe
+        _      -> Nothing
     | isProgram pkg = case stage of
         Stage0 -> Just . inplaceProgram $ pkgNameString pkg
         _      -> Just . installProgram $ pkgNameString pkg
diff --git a/src/Rules/Data.hs b/src/Rules/Data.hs
index de4f8c0..8b21fc7 100644
--- a/src/Rules/Data.hs
+++ b/src/Rules/Data.hs
@@ -67,6 +67,17 @@ buildPackageData rs target @ (PartialTarget stage pkg) = do
             writeFileChanged mk contents
             putSuccess $ "| Successfully generated '" ++ mk ++ "'."
 
+        when (pkg == unlit) $ dataFile %> \mk -> do
+            let prefix  = "utils_unlit_" ++ stageString stage ++ "_"
+                contents = unlines $ map (prefix++)
+                    [ "PROGNAME = unlit"
+                    , "C_SRCS = unlit.c"
+                    , "INSTALL = YES"
+                    , "INSTALL_INPLACE = YES"
+                    , "SYNOPSIS = Literate script filter." ]
+            writeFileChanged mk contents
+            putSuccess $ "| Successfully generated '" ++ mk ++ "'."
+
         when (pkg == touchy) $ dataFile %> \mk -> do
             let prefix = "utils_touchy_" ++ stageString stage ++ "_"
                 contents = unlines $ map (prefix++)
diff --git a/src/Settings/Args.hs b/src/Settings/Args.hs
index f2b30fa..3bd32d7 100644
--- a/src/Settings/Args.hs
+++ b/src/Settings/Args.hs
@@ -31,6 +31,7 @@ import Settings.Packages.IservBin
 import Settings.Packages.Rts
 import Settings.Packages.RunGhc
 import Settings.Packages.Touchy
+import Settings.Packages.Unlit
 import Settings.User
 
 getArgs :: Expr [String]
@@ -77,4 +78,5 @@ defaultPackageArgs = mconcat
     , iservBinPackageArgs
     , rtsPackageArgs
     , runGhcPackageArgs
-    , touchyPackageArgs ]
+    , touchyPackageArgs
+    , unlitPackageArgs ]
diff --git a/src/Settings/Packages/Hp2ps.hs b/src/Settings/Packages/Unlit.hs
similarity index 68%
copy from src/Settings/Packages/Hp2ps.hs
copy to src/Settings/Packages/Unlit.hs
index 26518c6..e654a66 100644
--- a/src/Settings/Packages/Hp2ps.hs
+++ b/src/Settings/Packages/Unlit.hs
@@ -1,13 +1,13 @@
-module Settings.Packages.Hp2ps (hp2psPackageArgs) where
+module Settings.Packages.Unlit (unlitPackageArgs) where
 
 import Base
 import Expression
-import GHC (hp2ps)
+import GHC (unlit)
 import Predicates (builderGhc, package)
-import Settings
+import Settings (getTargetPath)
 
-hp2psPackageArgs :: Args
-hp2psPackageArgs = package hp2ps ? do
+unlitPackageArgs :: Args
+unlitPackageArgs = package unlit ? do
     path <- getTargetPath
     let cabalMacros = path -/- "build/autogen/cabal_macros.h"
     mconcat [ builderGhc ?



More information about the ghc-commits mailing list