shithub: MicroHs

Download patch

ref: b35dfd403b5714ad0ba12f7a799318f9c054569c
parent: 9f1cedc551b0edfa8c13d54c2577604c49d9f908
author: Lennart Augustsson <lennart@augustsson.net>
date: Sun Mar 31 15:29:57 EDT 2024

Move getTimeMilli

--- a/MicroHs.cabal
+++ b/MicroHs.cabal
@@ -79,6 +79,7 @@
                        PrimTable
                        System.IO.MD5
                        System.IO.Serialize
+                       System.IO.TimeMilli
                        System.Compress
                        Paths_MicroHs
   autogen-modules:     Paths_MicroHs
--- a/ghc/Compat.hs
+++ b/ghc/Compat.hs
@@ -7,8 +7,6 @@
 --import Control.Exception
 import Data.Char
 import Data.Maybe
-import Data.Time
-import Data.Time.Clock.POSIX
 --import qualified Control.Monad as M
 import Control.Exception
 import Data.List
@@ -77,9 +75,6 @@
   case r of
     Left _ -> return Nothing
     Right h -> return (Just h)
-
-getTimeMilli :: IO Int
-getTimeMilli  = floor . (1000 *) . nominalDiffTimeToSeconds . utcTimeToPOSIXSeconds <$> getCurrentTime
 
 ------- Read --------
 
--- a/ghc/PrimTable.hs
+++ b/ghc/PrimTable.hs
@@ -5,6 +5,7 @@
 import Data.Maybe
 import Data.Word()
 import System.IO
+import System.IO.TimeMilli
 import Unsafe.Coerce
 import GHC.Types(Any)
 import Foreign.C.String
@@ -14,7 +15,7 @@
 --import System.Environment
 import System.IO.Unsafe
 --import Debug.Trace
-import Compat
+
 
 type AnyType = Any
 
--- /dev/null
+++ b/ghc/System/IO/TimeMilli.hs
@@ -1,0 +1,7 @@
+module System.IO.TimeMilli(getTimeMilli) where
+import Data.Time
+import Data.Time.Clock.POSIX
+
+getTimeMilli :: IO Int
+getTimeMilli  = floor . (1000 *) . nominalDiffTimeToSeconds . utcTimeToPOSIXSeconds <$> getCurrentTime
+
--- a/lib/System/IO.hs
+++ b/lib/System/IO.hs
@@ -21,7 +21,6 @@
 
   mkTextEncoding, hSetEncoding, utf8,
 
-  getTimeMilli,
   openTmpFile, openTempFile,
 
   withFile,
@@ -76,7 +75,6 @@
 foreign import ccall "fputc"        c_fputc        :: Int ->     Handle  -> IO Int
 -- foreign import ccall "fwrite"       c_fwrite       :: CString -> Int -> Int -> Handle -> IO Int
 -}
-foreign import ccall "GETTIMEMILLI" c_getTimeMilli ::                       IO Int
 
 foreign import ccall "closeb"       c_closeb       :: Ptr BFILE          -> IO ()
 foreign import ccall "flushb"       c_flushb       :: Ptr BFILE          -> IO ()
@@ -261,9 +259,6 @@
 
 interact :: (String -> String) -> IO ()
 interact f = getContents >>= putStr . f
-
-getTimeMilli :: IO Int
-getTimeMilli = c_getTimeMilli
 
 openBinaryFile :: String -> IOMode -> IO Handle
 openBinaryFile p m = do
--- /dev/null
+++ b/lib/System/IO/TimeMilli.hs
@@ -1,0 +1,6 @@
+module System.IO.TimeMilli(getTimeMilli) where
+
+foreign import ccall "GETTIMEMILLI" c_getTimeMilli :: IO Int
+
+getTimeMilli :: IO Int
+getTimeMilli = c_getTimeMilli
--- a/src/MicroHs/Compile.hs
+++ b/src/MicroHs/Compile.hs
@@ -18,6 +18,7 @@
 import System.IO
 import System.IO.MD5
 import System.IO.Serialize
+import System.IO.TimeMilli
 import System.Process
 import Control.DeepSeq
 import MicroHs.Abstract
--- a/src/MicroHs/Main.hs
+++ b/src/MicroHs/Main.hs
@@ -24,6 +24,7 @@
 import System.Directory
 import System.IO
 import System.IO.Serialize
+import System.IO.TimeMilli
 import System.Process
 import Compat
 import MicroHs.Instances(getMhsDir) -- for GHC
--