Remove the support for old GHC versions
authorIan Lynagh <igloo@earth.li>
Mon, 8 Aug 2011 20:41:44 +0000 (21:41 +0100)
committerIan Lynagh <igloo@earth.li>
Mon, 8 Aug 2011 20:41:44 +0000 (21:41 +0100)
The conditional code was all for versions < 6.10, so old enough that
they can't be used to compile the HEAD.

Additionally, it didn't work properly. It relied on __GLASGOW_HASKELL__
being defined when compiling the C, rather than having the C print the
conditionals as part of the Haskell.

C.hs
Common.hs
DirectCodegen.hs
template-hsc.h

diff --git a/C.hs b/C.hs
index 7676ec7..a3154a2 100644 (file)
--- a/C.hs
+++ b/C.hs
@@ -45,22 +45,14 @@ outHeaderCProg (pos, key, arg) = case key of
 
 outHeaderHs :: [Flag] -> Maybe String -> [(SourcePos, String, String)] -> String
 outHeaderHs flags inH toks =
-    "#if " ++
-    "__GLASGOW_HASKELL__ && __GLASGOW_HASKELL__ < 409\n" ++
-    "    printf (\"{-# OPTIONS -optc-D" ++
-    "__GLASGOW_HASKELL__=%d #-}\\n\", " ++
-    "__GLASGOW_HASKELL__);\n" ++
-    "#endif\n"++
     case inH of
         Nothing -> concatMap outFlag flags++concatMap outSpecial toks
-        Just f  -> outInclude ("\""++f++"\"")
+        Just _  -> ""
     where
-    outFlag (Include f)          = outInclude f
     outFlag (Define  n Nothing)  = outOption ("-optc-D"++n)
     outFlag (Define  n (Just v)) = outOption ("-optc-D"++n++"="++v)
     outFlag _                    = ""
     outSpecial (pos, key, arg) = case key of
-        "include"                  -> outInclude arg
         "define" | goodForOptD arg -> outOption ("-optc-D"++toOptD arg)
                  | otherwise       -> ""
         _ | conditional key        -> outCLine pos++"#"++key++" "++arg++"\n"
@@ -74,21 +66,8 @@ outHeaderHs flags inH toks =
         (name, "")      -> name
         (name, _:value) -> name++'=':dropWhile isSpace value
     outOption s =
-       "#if __GLASGOW_HASKELL__ && __GLASGOW_HASKELL__ < 603\n" ++
-       "    printf (\"{-# OPTIONS %s #-}\\n\", \""++
-                  showCString s++"\");\n"++
-       "#else\n"++
        "    printf (\"{-# OPTIONS_GHC %s #-}\\n\", \""++
-                  showCString s++"\");\n"++
-       "#endif\n"
-    outInclude s =
-       "#if __GLASGOW_HASKELL__ && __GLASGOW_HASKELL__ < 603\n" ++
-       "    printf (\"{-# OPTIONS -#include %s #-}\\n\", \""++
-                  showCString s++"\");\n"++
-       "#elif __GLASGOW_HASKELL__ < 610\n"++
-       "    printf (\"{-# INCLUDE %s #-}\\n\", \""++
-                  showCString s++"\");\n"++
-       "#endif\n"
+                  showCString s++"\");\n"
 
 outTokenHs :: Token -> String
 outTokenHs (Text pos txt) =
index 0a7f1b9..0c60ca1 100644 (file)
--- a/Common.hs
+++ b/Common.hs
@@ -6,15 +6,9 @@ import qualified Control.Exception as Exception
 import Control.Monad            ( when )
 import System.IO
 
-#if __GLASGOW_HASKELL__ >= 604
 import System.Process           ( runProcess, waitForProcess )
-#define HAVE_runProcess
-#endif
 
 import System.Cmd               ( rawSystem )
-#ifndef HAVE_runProcess
-import System.Cmd               ( system )
-#endif
 
 import System.Exit              ( ExitCode(..), exitWith )
 import System.Directory         ( removeFile )
@@ -64,14 +58,10 @@ rawSystemWithStdOutL :: String -> Bool -> FilePath -> [String] -> FilePath -> IO
 rawSystemWithStdOutL action flg prog args outFile = do
   let cmdLine = prog++" "++unwords args++" >"++outFile
   when flg (hPutStrLn stderr ("Executing: " ++ cmdLine))
-#ifndef HAVE_runProcess
-  exitStatus <- system cmdLine
-#else
   hOut <- openFile outFile WriteMode
   process <- runProcess prog args Nothing Nothing Nothing (Just hOut) Nothing
   exitStatus <- waitForProcess process
   hClose hOut
-#endif
   case exitStatus of
     ExitFailure exitCode -> die $ action ++ " failed "
                                ++ "(exit code " ++ show exitCode ++ ")\n"
index e09cc86..0e132ab 100644 (file)
@@ -90,9 +90,6 @@ outputDirect config outName outDir outBase name toks = do
           when needsH $ writeBinaryFile outHName $
             "#ifndef "++includeGuard++"\n" ++
             "#define "++includeGuard++"\n" ++
-            "#if __GLASGOW_HASKELL__ && __GLASGOW_HASKELL__ < 409\n" ++
-            "#include <Rts.h>\n" ++
-            "#endif\n" ++
             "#include <HsFFI.h>\n" ++
             "#if __NHC__\n" ++
             "#undef HsChar\n" ++
index cb98f64..fcfa878 100644 (file)
@@ -1,6 +1,3 @@
-#if __GLASGOW_HASKELL__ && __GLASGOW_HASKELL__ < 409
-#include <Rts.h>
-#endif
 #include <HsFFI.h>
 
 #include <stddef.h>