[Add -V which shows jhc version as well as darcs context
John Meacham <john@repetae.net>**20050424140452] hunk ./Makefile 16
-BUILTSOURCES= PrimitiveOperators.hs RawFiles.hs FrontEnd/HsParser.hs FlagDump.hs FlagOpts.hs
+BUILTSOURCES= PrimitiveOperators.hs RawFiles.hs FrontEnd/HsParser.hs FlagDump.hs FlagOpts.hs Version.hs
hunk ./Makefile 102
+
+Version.hs: _darcs/inventory 
+	darcs changes --context > changes.txt  || echo "No darcs Context Available!" > changes.txt
+	perl ./op_raw.prl $(basename $@) changes.txt > $@
+	rm -f changes.txt
hunk ./Options.hs 4
+import Control.Monad.Error
+import Data.Version
hunk ./Options.hs 7
-import System
-import System.Console.GetOpt
-import System.IO.Unsafe
hunk ./Options.hs 8
-import Control.Monad.Error
hunk ./Options.hs 11
+import System
+import System.Console.GetOpt
+import System.Info
+import System.IO.Unsafe
+import Version
hunk ./Options.hs 30
+    optVersion     :: !Bool,
hunk ./Options.hs 65
+    optVersion     = False,
hunk ./Options.hs 73
-theoptions :: [OptDescr (Opt -> Opt)] 
+theoptions :: [OptDescr (Opt -> Opt)]
hunk ./Options.hs 75
-    [ Option ['v'] ["verbose"]   (NoArg  (optVerbose_u (+1)))    "chatty output on stderr"
+    [ Option ['V'] ["version"]   (NoArg  (optVersion_s True))    "print version info and exit"
+    , Option ['v'] ["verbose"]   (NoArg  (optVerbose_u (+1)))    "chatty output on stderr"
hunk ./Options.hs 96
-    ]  
+    ]
hunk ./Options.hs 100
-    
+
hunk ./Options.hs 115
-    
+
hunk ./Options.hs 122
-	  (o,ns,[]) -> case postProcess (foldl (flip ($)) opt o) of 
-                (o,"") -> case postProcess' o of 
+	  (o,ns,[]) -> case postProcess (foldl (flip ($)) opt o) of
+                (o,"") -> case postProcess' o of
+                    (Opt { optVersion = True },_) -> do
+                        putStr $ "jhc compiled by " ++ compilerName ++ "-" ++ showVersion compilerVersion
+                        putStrLn $ " on a " ++ arch ++ " running " ++ os
+                        putStrLn changes_txt
+                        exitSuccess
hunk ./Options.hs 148
-putVerboseLn s = putVerbose (s ++ "\n") 
+putVerboseLn s = putVerbose (s ++ "\n")
hunk ./Options.hs 157
-wdump f = when (dump f) 
+wdump f = when (dump f)
hunk ./Options.hs 159
-flint = FlagOpts.Lint `S.member` optFOptsSet options 
+flint = FlagOpts.Lint `S.member` optFOptsSet options
hunk ./Options.hs 165
-    
+