[project @ 2005-01-28 13:54:56 by simonmar]
[ghc-base.git] / System / Info.hs
index 9b61867..85b9017 100644 (file)
@@ -1,32 +1,59 @@
 -----------------------------------------------------------------------------
--- 
+-- |
 -- Module      :  System.Info
 -- Copyright   :  (c) The University of Glasgow 2001
--- License     :  BSD-style (see the file libraries/core/LICENSE)
+-- License     :  BSD-style (see the file libraries/base/LICENSE)
 -- 
 -- Maintainer  :  libraries@haskell.org
 -- Stability   :  experimental
 -- Portability :  portable
 --
--- $Id: Info.hs,v 1.2 2001/07/03 11:37:50 simonmar Exp $
---
 -- Misc information about the characteristics of the host 
--- architecture/machine lucky enough to run your program.
+-- architecture\/machine lucky enough to run your program.
 --
 -----------------------------------------------------------------------------
 
-#include "MachDeps.h"
-
 module System.Info
    (
        os,                 -- :: String
-       arch                -- :: String
+       arch,               -- :: String
+       compilerName,       -- :: String
+#ifdef __GLASGOW_HASKELL__
+       compilerVersion     -- :: Version
+#endif
    ) where
 
 import Prelude
+import Data.Version
+
+#ifndef __NHC__
+
+#include "ghcplatform.h"
 
 arch :: String
 arch = HOST_ARCH
 
 os :: String
 os = HOST_OS
+
+#else
+os,arch ::String
+#include "OSInfo.hs"
+#endif
+
+compilerName :: String
+#if defined(__NHC__)
+compilerName = "nhc98"
+#elif defined(__GLASGOW_HASKELL__)
+compilerName = "ghc"
+#elif defined(__HUGS__)
+compilerName = "hugs"
+#else
+#error Unknown compiler name
+#endif
+
+#ifdef __GLASGOW_HASKELL__
+compilerVersion :: Version
+compilerVersion = Version {versionBranch=[maj,min], versionTags=[]}
+  where (maj,min) = __GLASGOW_HASKELL__ `divMod` 100
+#endif