-----------------------------------------------------------------------------
---
+-- |
-- 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 : provisional
+-- Stability : experimental
-- Portability : portable
--
--- $Id: Info.hs,v 1.1 2001/06/28 14:15:04 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
+
+#ifdef __NHC__
+compilerVersion :: Version
+compilerVersion = Version {versionBranch=[maj,min], versionTags=[]}
+ where (maj,min) = __NHC__ `divMod` 100
+#endif
+