Fix Show instances.
authorAndrey Mokhov <andrey.mokhov@gmail.com>
Tue, 22 Dec 2015 04:59:02 +0000 (04:59 +0000)
committerAndrey Mokhov <andrey.mokhov@gmail.com>
Tue, 22 Dec 2015 04:59:02 +0000 (04:59 +0000)
src/Oracles/Config/Setting.hs
src/Stage.hs
src/Target.hs
src/Way.hs

index fa62f97..8f0b1df 100644 (file)
@@ -85,10 +85,10 @@ setting key = askConfig $ case key of
 
 settingList :: SettingList -> Action [String]
 settingList key = fmap words $ askConfig $ case key of
-    ConfCcArgs        stage -> "conf-cc-args-stage"         ++ show stage
-    ConfCppArgs       stage -> "conf-cpp-args-stage"        ++ show stage
-    ConfGccLinkerArgs stage -> "conf-gcc-linker-args-stage" ++ show stage
-    ConfLdLinkerArgs  stage -> "conf-ld-linker-args-stage"  ++ show stage
+    ConfCcArgs        stage -> "conf-cc-args-stage"         ++ show (fromEnum stage)
+    ConfCppArgs       stage -> "conf-cpp-args-stage"        ++ show (fromEnum stage)
+    ConfGccLinkerArgs stage -> "conf-gcc-linker-args-stage" ++ show (fromEnum stage)
+    ConfLdLinkerArgs  stage -> "conf-ld-linker-args-stage"  ++ show (fromEnum stage)
     GmpIncludeDirs          -> "gmp-include-dirs"
     GmpLibDirs              -> "gmp-lib-dirs"
     HsCppArgs               -> "hs-cpp-args"
index 3aca206..d474557 100644 (file)
@@ -5,10 +5,8 @@ import Base
 import GHC.Generics (Generic)
 
 -- TODO: explain stages
-data Stage = Stage0 | Stage1 | Stage2 | Stage3 deriving (Eq, Enum, Generic)
-
-instance Show Stage where
-    show = show . fromEnum
+data Stage = Stage0 | Stage1 | Stage2 | Stage3
+           deriving (Show, Eq, Ord, Enum, Generic)
 
 -- Instances for storing in the Shake database
 instance Binary Stage
index c70790d..2060d04 100644 (file)
@@ -37,7 +37,7 @@ instance Monoid a => Monoid (ReaderT Target Action a) where
 
 -- PartialTarget is a partially constructed Target with fields Stage and
 -- Package only. PartialTarget's are used for generating build rules.
-data PartialTarget = PartialTarget Stage Package
+data PartialTarget = PartialTarget Stage Package deriving Show
 
 -- Convert PartialTarget to Target assuming that unknown fields won't be used.
 fromPartial :: PartialTarget -> Target
index 095bd52..28d1365 100644 (file)
@@ -28,6 +28,7 @@ data WayUnit = Threaded
              | GranSim
              deriving (Eq, Enum)
 
+-- TODO: get rid of non-derived Show instances
 instance Show WayUnit where
     show unit = case unit of
         Threaded  -> "thr"